Merge "Enable AuthManager by default"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 20 May 2016 15:47:50 +0000 (15:47 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 20 May 2016 15:47:50 +0000 (15:47 +0000)
125 files changed:
.stylelintrc [new file with mode: 0644]
Gruntfile.js
RELEASE-NOTES-1.27
autoload.php
includes/MediaWikiServices.php
includes/Services/SalvageableService.php [new file with mode: 0644]
includes/Services/ServiceContainer.php
includes/Setup.php
includes/Title.php
includes/api/ApiMain.php
includes/api/ApiQuerySiteinfo.php
includes/api/i18n/es.json
includes/api/i18n/fr.json
includes/api/i18n/zh-hans.json
includes/config/ConfigFactory.php
includes/deferred/LinksUpdate.php
includes/exception/BadRequestError.php [new file with mode: 0644]
includes/exception/BadTitleError.php
includes/installer/i18n/anp.json [new file with mode: 0644]
includes/page/CategoryPage.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialWhatlinkshere.php
includes/user/User.php
jsduck.json
languages/i18n/anp.json
languages/i18n/ast.json
languages/i18n/azb.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bgn.json
languages/i18n/bn.json
languages/i18n/ca.json
languages/i18n/cs.json
languages/i18n/cv.json
languages/i18n/da.json
languages/i18n/diq.json
languages/i18n/dty.json
languages/i18n/el.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fr.json
languages/i18n/gl.json
languages/i18n/he.json
languages/i18n/hrx.json
languages/i18n/ia.json
languages/i18n/id.json
languages/i18n/inh.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/jv.json
languages/i18n/ko.json
languages/i18n/ksh.json
languages/i18n/ku-latn.json
languages/i18n/lb.json
languages/i18n/lt.json
languages/i18n/mk.json
languages/i18n/nds-nl.json
languages/i18n/nds.json
languages/i18n/olo.json
languages/i18n/pl.json
languages/i18n/pms.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/ru.json
languages/i18n/shn.json [new file with mode: 0644]
languages/i18n/sl.json
languages/i18n/sq.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/sv.json
languages/i18n/th.json
languages/i18n/tr.json
languages/i18n/tt-cyrl.json
languages/i18n/vep.json
languages/i18n/vi.json
languages/i18n/war.json
maintenance/storage/recompressTracked.php
mw-config/config-cc.css
mw-config/config.css
package.json
resources/ResourcesOOUI.php
resources/src/jquery.tipsy/jquery.tipsy.css
resources/src/jquery/jquery.arrowSteps.css
resources/src/jquery/jquery.badge.css
resources/src/jquery/jquery.suggestions.css
resources/src/mediawiki.action/mediawiki.action.history.css
resources/src/mediawiki.action/mediawiki.action.history.diff.css
resources/src/mediawiki.action/mediawiki.action.view.filepage.css
resources/src/mediawiki.action/mediawiki.action.view.postEdit.css
resources/src/mediawiki.legacy/oldshared.css
resources/src/mediawiki.legacy/shared.css
resources/src/mediawiki.skinning/content.css
resources/src/mediawiki.skinning/content.parsoid.less
resources/src/mediawiki.skinning/elements.css
resources/src/mediawiki.skinning/interface.css
resources/src/mediawiki.special/mediawiki.special.css
resources/src/mediawiki.special/mediawiki.special.preferences.styles.css
resources/src/mediawiki.special/mediawiki.special.search.css [changed mode: 0755->0644]
resources/src/mediawiki.special/mediawiki.special.userlogin.signup.css
resources/src/mediawiki.widgets.datetime/CalendarWidget.less
resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.less
resources/src/mediawiki.widgets/mw.widgets.DateInputWidget.less
resources/src/mediawiki.widgets/mw.widgets.StashedFileWidget.less
resources/src/mediawiki/mediawiki.apihelp.css
resources/src/mediawiki/mediawiki.content.json.css
resources/src/mediawiki/mediawiki.debug.less
resources/src/mediawiki/mediawiki.filewarning.less
resources/src/mediawiki/mediawiki.htmlform.css
resources/src/mediawiki/mediawiki.js
resources/src/mediawiki/mediawiki.notification.css
resources/src/mediawiki/mediawiki.searchSuggest.css
resources/src/mediawiki/page/gallery.css
resources/src/mediawiki/page/patrol.ajax.js
tests/browser/features/edit_page.feature
tests/browser/features/view_history.feature
tests/phpunit/includes/HtmlTest.php
tests/phpunit/includes/MediaWikiServicesTest.php
tests/phpunit/includes/Services/ServiceContainerTest.php
tests/phpunit/includes/config/ConfigFactoryTest.php
tests/phpunit/suite.xml

diff --git a/.stylelintrc b/.stylelintrc
new file mode 100644 (file)
index 0000000..e8e1567
--- /dev/null
@@ -0,0 +1,16 @@
+{
+       "rules": {
+               "color-hex-case": [ "lower" ],
+               "color-hex-length": [ "short" ],
+               "color-named": [ "never" ],
+               "color-no-invalid-hex": true,
+
+               "declaration-bang-space-after": [ "never" ],
+               "declaration-bang-space-before": [ "always" ],
+               "declaration-colon-space-after": [ "always" ],
+               "declaration-colon-space-before": [ "never" ],
+
+               "font-family-name-quotes": [ "single-unless-keyword" ],
+               "font-weight-notation": [ "named-where-possible" ]
+       }
+}
index 354f048..a08db5c 100644 (file)
@@ -2,6 +2,7 @@
 module.exports = function ( grunt ) {
        grunt.loadNpmTasks( 'grunt-contrib-copy' );
        grunt.loadNpmTasks( 'grunt-contrib-jshint' );
+       grunt.loadNpmTasks( 'grunt-stylelint' );
        grunt.loadNpmTasks( 'grunt-contrib-watch' );
        grunt.loadNpmTasks( 'grunt-banana-checker' );
        grunt.loadNpmTasks( 'grunt-jscs' );
@@ -39,9 +40,15 @@ module.exports = function ( grunt ) {
                        api: 'includes/api/i18n/',
                        installer: 'includes/installer/i18n/'
                },
+               stylelint: {
+                       options: {
+                               syntax: 'less'
+                       },
+                       src: '{resources/src/*,mw-config/**}/*.{css,less}'
+               },
                watch: {
                        files: [
-                               '.js*',
+                               '.{stylelintrc,jscsrc,jshintignore,jshintrc}',
                                '**/*',
                                '!{docs,extensions,node_modules,skins,vendor}/**'
                        ],
@@ -96,7 +103,7 @@ module.exports = function ( grunt ) {
                return !!( process.env.MW_SERVER && process.env.MW_SCRIPT_PATH );
        } );
 
-       grunt.registerTask( 'lint', [ 'jshint', 'jscs', 'jsonlint', 'banana' ] );
+       grunt.registerTask( 'lint', [ 'jshint', 'jscs', 'jsonlint', 'banana', 'stylelint' ] );
        grunt.registerTask( 'qunit', [ 'assert-mw-env', 'karma:main' ] );
 
        grunt.registerTask( 'test', [ 'lint' ] );
index 7c50e4f..e644ae4 100644 (file)
@@ -11,7 +11,7 @@ HHVM 3.1. Additionally, the following PHP extensions are required:
 * ctype
 * iconv
 * json
-* mbstring
+* mbstring (new requirement in 1.27)
 * xml
 The following PHP extensions are strongly recommended:
 * openssl
index aeb69fd..fe37fe9 100644 (file)
@@ -164,6 +164,7 @@ $wgAutoloadLocalClasses = [
        'BacklinkJobUtils' => __DIR__ . '/includes/jobqueue/utils/BacklinkJobUtils.php',
        'BackupDumper' => __DIR__ . '/maintenance/backup.inc',
        'BackupReader' => __DIR__ . '/maintenance/importDump.php',
+       'BadRequestError' => __DIR__ . '/includes/exception/BadRequestError.php',
        'BadTitleError' => __DIR__ . '/includes/exception/BadTitleError.php',
        'BagOStuff' => __DIR__ . '/includes/libs/objectcache/BagOStuff.php',
        'BaseDump' => __DIR__ . '/maintenance/backupPrefetch.inc',
@@ -852,6 +853,7 @@ $wgAutoloadLocalClasses = [
        'MediaWiki\\Services\\CannotReplaceActiveServiceException' => __DIR__ . '/includes/Services/CannotReplaceActiveServiceException.php',
        'MediaWiki\\Services\\ContainerDisabledException' => __DIR__ . '/includes/Services/ContainerDisabledException.php',
        'MediaWiki\\Services\\DestructibleService' => __DIR__ . '/includes/Services/DestructibleService.php',
+       'MediaWiki\\Services\\SalvageableService' => __DIR__ . '/includes/Services/SalvageableService.php',
        'MediaWiki\\Services\\NoSuchServiceException' => __DIR__ . '/includes/Services/NoSuchServiceException.php',
        'MediaWiki\\Services\\ServiceAlreadyDefinedException' => __DIR__ . '/includes/Services/ServiceAlreadyDefinedException.php',
        'MediaWiki\\Services\\ServiceContainer' => __DIR__ . '/includes/Services/ServiceContainer.php',
index e2dc691..4028aa2 100644 (file)
@@ -11,6 +11,7 @@ use LBFactory;
 use LinkCache;
 use Liuggio\StatsdClient\Factory\StatsdDataFactory;
 use LoadBalancer;
+use MediaWiki\Services\SalvageableService;
 use MediaWiki\Services\ServiceContainer;
 use MWException;
 use ObjectCache;
@@ -90,7 +91,7 @@ class MediaWikiServices extends ServiceContainer {
                        // even if it's just a file name or database credentials to load
                        // configuration from.
                        $bootstrapConfig = new GlobalVarConfig();
-                       self::$instance = self::newInstance( $bootstrapConfig );
+                       self::$instance = self::newInstance( $bootstrapConfig, 'load' );
                }
 
                return self::$instance;
@@ -123,7 +124,7 @@ class MediaWikiServices extends ServiceContainer {
        /**
         * Creates a new instance of MediaWikiServices and sets it as the global default
         * instance. getInstance() will return a different MediaWikiServices object
-        * after every call to resetGlobalServiceLocator().
+        * after every call to resetGlobalInstance().
         *
         * @since 1.28
         *
@@ -131,7 +132,7 @@ class MediaWikiServices extends ServiceContainer {
         * when the configuration has changed significantly since bootstrap time, e.g.
         * during the installation process or during testing.
         *
-        * @warning Calling resetGlobalServiceLocator() may leave the application in an inconsistent
+        * @warning Calling resetGlobalInstance() may leave the application in an inconsistent
         * state. Calling this is only safe under the ASSUMPTION that NO REFERENCE to
         * any of the services managed by MediaWikiServices exist. If any service objects
         * managed by the old MediaWikiServices instance remain in use, they may INTERFERE
@@ -152,11 +153,14 @@ class MediaWikiServices extends ServiceContainer {
         *        was no previous instance, a new GlobalVarConfig object will be used to
         *        bootstrap the services.
         *
+        * @param string $quick Set this to "quick" to allow expensive resources to be re-used.
+        * See SalvageableService for details.
+        *
         * @throws MWException If called after MW_SERVICE_BOOTSTRAP_COMPLETE has been defined in
         *         Setup.php (unless MW_PHPUNIT_TEST or MEDIAWIKI_INSTALL or RUN_MAINTENANCE_IF_MAIN
         *          is defined).
         */
-       public static function resetGlobalInstance( Config $bootstrapConfig = null ) {
+       public static function resetGlobalInstance( Config $bootstrapConfig = null, $quick = '' ) {
                if ( self::$instance === null ) {
                        // no global instance yet, nothing to reset
                        return;
@@ -168,9 +172,38 @@ class MediaWikiServices extends ServiceContainer {
                        $bootstrapConfig = self::$instance->getBootstrapConfig();
                }
 
-               self::$instance->destroy();
+               $oldInstance = self::$instance;
 
                self::$instance = self::newInstance( $bootstrapConfig );
+               self::$instance->importWiring( $oldInstance, [ 'BootstrapConfig' ] );
+
+               if ( $quick === 'quick' ) {
+                       self::$instance->salvage( $oldInstance );
+               } else {
+                       $oldInstance->destroy();
+               }
+
+       }
+
+       /**
+        * Salvages the state of any salvageable service instances in $other.
+        *
+        * @note $other will have been destroyed when salvage() returns.
+        *
+        * @param MediaWikiServices $other
+        */
+       private function salvage( self $other ) {
+               foreach ( $this->getServiceNames() as $name ) {
+                       $oldService = $other->peekService( $name );
+
+                       if ( $oldService instanceof SalvageableService ) {
+                               /** @var SalvageableService $newService */
+                               $newService = $this->getService( $name );
+                               $newService->salvage( $oldService );
+                       }
+               }
+
+               $other->destroy();
        }
 
        /**
@@ -179,21 +212,23 @@ class MediaWikiServices extends ServiceContainer {
         * ServiceWiringFiles setting are loaded, and the MediaWikiServices hook is called.
         *
         * @param Config|null $bootstrapConfig The Config object to be registered as the
-        *        'BootstrapConfig' service. This has to contain at least the information
-        *        needed to set up the 'ConfigFactory' service. If not provided, any call
-        *        to getBootstrapConfig(), getConfigFactory, or getMainConfig will fail.
-        *        A MediaWikiServices instance without access to configuration is called
-        *        "primordial".
+        *        'BootstrapConfig' service.
+        *
+        * @param string $loadWiring set this to 'load' to load the wiring files specified
+        *        in the 'ServiceWiringFiles' setting in $bootstrapConfig.
         *
         * @return MediaWikiServices
         * @throws MWException
+        * @throws \FatalError
         */
-       private static function newInstance( Config $bootstrapConfig ) {
+       private static function newInstance( Config $bootstrapConfig, $loadWiring = '' ) {
                $instance = new self( $bootstrapConfig );
 
                // Load the default wiring from the specified files.
-               $wiringFiles = $bootstrapConfig->get( 'ServiceWiringFiles' );
-               $instance->loadWiringFiles( $wiringFiles );
+               if ( $loadWiring === 'load' ) {
+                       $wiringFiles = $bootstrapConfig->get( 'ServiceWiringFiles' );
+                       $instance->loadWiringFiles( $wiringFiles );
+               }
 
                // Provide a traditional hook point to allow extensions to configure services.
                Hooks::run( 'MediaWikiServices', [ $instance ] );
@@ -265,7 +300,7 @@ class MediaWikiServices extends ServiceContainer {
         * instances to clean up.
         *
         * @param string $name
-        * @param string $destroy Whether the service instance should be destroyed if it exists.
+        * @param bool $destroy Whether the service instance should be destroyed if it exists.
         *        When set to false, any existing service instance will effectively be detached
         *        from the container.
         *
diff --git a/includes/Services/SalvageableService.php b/includes/Services/SalvageableService.php
new file mode 100644 (file)
index 0000000..a613050
--- /dev/null
@@ -0,0 +1,58 @@
+<?php
+namespace MediaWiki\Services;
+
+/**
+ * Interface for salvageable services.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ *
+ * @since 1.28
+ */
+
+/**
+ * SalvageableService defines an interface for services that are able to salvage state from a
+ * previous instance of the same class. The intent is to allow new service instances to re-use
+ * resources that would be expensive to re-create, such as cached data or network connections.
+ *
+ * @note There is no expectation that services will be destroyed when the process (or web request)
+ * terminates.
+ */
+interface SalvageableService {
+
+       /**
+        * Re-uses state from $other. $other must not be used after being passed to salvage(),
+        * and should be considered to be destroyed.
+        *
+        * @note Implementations are responsible for determining what parts of $other can be re-used
+        * safely. In particular, implementations should check that the relevant configuration of
+        * $other is the same as in $this before re-using resources from $other.
+        *
+        * @note Implementations must take care to detach any re-used resources from the original
+        * service instance. If $other is destroyed later, resources that are now used by the
+        * new service instance must not be affected.
+        *
+        * @note If $other is a DestructibleService, implementations should make sure that $other
+        * is in destroyed state after salvage finished. This may be done by calling $other->destroy()
+        * after carefully detaching all relevant resources.
+        *
+        * @param SalvageableService $other The object to salvage state from. $other must have the
+        * exact same type as $this.
+        */
+       public function salvage( SalvageableService $other );
+
+}
index 66ee918..b336795 100644 (file)
@@ -55,6 +55,11 @@ class ServiceContainer implements DestructibleService {
         */
        private $serviceInstantiators = [];
 
+       /**
+        * @var boolean[] disabled status, per service name
+        */
+       private $disabled = [];
+
        /**
         * @var array
         */
@@ -126,6 +131,28 @@ class ServiceContainer implements DestructibleService {
                }
        }
 
+       /**
+        * Imports all wiring defined in $container. Wiring defined in $container
+        * will override any wiring already defined locally. However, already
+        * existing service instances will be preserved.
+        *
+        * @since 1.28
+        *
+        * @param ServiceContainer $container
+        * @param string[] $skip A list of service names to skip during import
+        */
+       public function importWiring( ServiceContainer $container, $skip = [] ) {
+               $newInstantiators = array_diff_key(
+                       $container->serviceInstantiators,
+                       array_flip( $skip )
+               );
+
+               $this->serviceInstantiators = array_merge(
+                       $this->serviceInstantiators,
+                       $newInstantiators
+               );
+       }
+
        /**
         * Returns true if a service is defined for $name, that is, if a call to getService( $name )
         * would return a service instance.
@@ -220,6 +247,7 @@ class ServiceContainer implements DestructibleService {
                }
 
                $this->serviceInstantiators[$name] = $instantiator;
+               unset( $this->disabled[$name] );
        }
 
        /**
@@ -244,9 +272,7 @@ class ServiceContainer implements DestructibleService {
        public function disableService( $name ) {
                $this->resetService( $name );
 
-               $this->redefineService( $name, function() use ( $name ) {
-                       throw new ServiceDisabledException( $name );
-               } );
+               $this->disabled[$name] = true;
        }
 
        /**
@@ -282,6 +308,7 @@ class ServiceContainer implements DestructibleService {
                }
 
                unset( $this->services[$name] );
+               unset( $this->disabled[$name] );
        }
 
        /**
@@ -299,7 +326,8 @@ class ServiceContainer implements DestructibleService {
         * @param string $name The service name
         *
         * @throws NoSuchServiceException if $name is not a known service.
-        * @throws ServiceDisabledException if this container has already been destroyed.
+        * @throws ContainerDisabledException if this container has already been destroyed.
+        * @throws ServiceDisabledException if the requested service has been disabled.
         *
         * @return object The service instance
         */
@@ -308,6 +336,10 @@ class ServiceContainer implements DestructibleService {
                        throw new ContainerDisabledException();
                }
 
+               if ( isset( $this->disabled[$name] ) ) {
+                       throw new ServiceDisabledException( $name );
+               }
+
                if ( !isset( $this->services[$name] ) ) {
                        $this->services[$name] = $this->createService( $name );
                }
@@ -327,6 +359,7 @@ class ServiceContainer implements DestructibleService {
                                $this->serviceInstantiators[$name],
                                array_merge( [ $this ], $this->extraInstantiationParams )
                        );
+                       // NOTE: when adding more wiring logic here, make sure copyWiring() is kept in sync!
                } else {
                        throw new NoSuchServiceException( $name );
                }
index e57b96a..5b19b5f 100644 (file)
@@ -517,7 +517,7 @@ if ( !class_exists( 'AutoLoader' ) ) {
 
 // Reset the global service locator, so any services that have already been created will be
 // re-created while taking into account any custom settings and extensions.
-MediaWikiServices::resetGlobalInstance( new GlobalVarConfig() );
+MediaWikiServices::resetGlobalInstance( new GlobalVarConfig(), 'quick' );
 
 // Define a constant that indicates that the bootstrapping of the service locator
 // is complete.
index 72c21fc..b996def 100644 (file)
@@ -2973,6 +2973,8 @@ class Title implements LinkTarget {
 
        /**
         * Purge expired restrictions from the page_restrictions table
+        *
+        * This will purge no more than $wgUpdateRowsPerQuery page_restrictions rows
         */
        static function purgeExpiredRestrictions() {
                if ( wfReadOnly() ) {
@@ -2983,11 +2985,24 @@ class Title implements LinkTarget {
                        wfGetDB( DB_MASTER ),
                        __METHOD__,
                        function ( IDatabase $dbw, $fname ) {
-                               $dbw->delete(
+                               $config = MediaWikiServices::getInstance()->getMainConfig();
+                               $ids = $dbw->selectFieldValues(
                                        'page_restrictions',
+                                       'pr_id',
                                        [ 'pr_expiry < ' . $dbw->addQuotes( $dbw->timestamp() ) ],
-                                       $fname
+                                       $fname,
+                                       [ 'LIMIT' => $config->get( 'UpdateRowsPerQuery' ) ] // T135470
                                );
+                               if ( $ids ) {
+                                       $dbw->delete( 'page_restrictions', [ 'pr_id' => $ids ], $fname );
+                               }
+                       }
+               ) );
+
+               DeferredUpdates::addUpdate( new AtomicSectionUpdate(
+                       wfGetDB( DB_MASTER ),
+                       __METHOD__,
+                       function ( IDatabase $dbw, $fname ) {
                                $dbw->delete(
                                        'protected_titles',
                                        [ 'pt_expiry < ' . $dbw->addQuotes( $dbw->timestamp() ) ],
index b944385..9c54eac 100644 (file)
@@ -1645,9 +1645,14 @@ class ApiMain extends ApiBase {
                        $tocnumber = &$options['tocnumber'];
 
                        $header = $this->msg( 'api-help-datatypes-header' )->parse();
+
+                       // Add an additional span with sanitized ID
+                       if ( !$this->getConfig()->get( 'ExperimentalHtmlIds' ) ) {
+                               $header = Html::element( 'span', [ 'id' => Sanitizer::escapeId( 'main/datatypes' ) ] ) .
+                                       $header;
+                       }
                        $help['datatypes'] .= Html::rawElement( 'h' . min( 6, $level ),
                                [ 'id' => 'main/datatypes', 'class' => 'apihelp-header' ],
-                               Html::element( 'span', [ 'id' => Sanitizer::escapeId( 'main/datatypes' ) ] ) .
                                $header
                        );
                        $help['datatypes'] .= $this->msg( 'api-help-datatypes' )->parseAsBlock();
@@ -1663,10 +1668,14 @@ class ApiMain extends ApiBase {
                                ];
                        }
 
+                       // Add an additional span with sanitized ID
+                       if ( !$this->getConfig()->get( 'ExperimentalHtmlIds' ) ) {
+                               $header = Html::element( 'span', [ 'id' => Sanitizer::escapeId( 'main/credits' ) ] ) .
+                                       $header;
+                       }
                        $header = $this->msg( 'api-credits-header' )->parse();
                        $help['credits'] .= Html::rawElement( 'h' . min( 6, $level ),
                                [ 'id' => 'main/credits', 'class' => 'apihelp-header' ],
-                               Html::element( 'span', [ 'id' => Sanitizer::escapeId( 'main/credits' ) ] ) .
                                $header
                        );
                        $help['credits'] .= $this->msg( 'api-credits' )->useDatabase( false )->parseAsBlock();
index a08740a..0774651 100644 (file)
@@ -485,7 +485,7 @@ class ApiQuerySiteinfo extends ApiQueryBase {
 
                $data = [];
                $result = $this->getResult();
-               $allGroups = User::getAllGroups();
+               $allGroups = array_values( User::getAllGroups() );
                foreach ( $config->get( 'GroupPermissions' ) as $group => $permissions ) {
                        $arr = [
                                'name' => $group,
@@ -512,7 +512,11 @@ class ApiQuerySiteinfo extends ApiQueryBase {
 
                        foreach ( $groupArr as $type => $rights ) {
                                if ( isset( $rights[$group] ) ) {
-                                       $groups = array_intersect( $rights[$group], $allGroups );
+                                       if ( $rights[$group] === true ) {
+                                               $groups = $allGroups;
+                                       } else {
+                                               $groups = array_intersect( $rights[$group], $allGroups );
+                                       }
                                        if ( $groups ) {
                                                $arr[$type] = $groups;
                                                ApiResult::setArrayType( $arr[$type], 'BCarray' );
index 284c23c..76dda48 100644 (file)
@@ -18,7 +18,8 @@
                        "AlvaroMolina",
                        "Ciencia Al Poder",
                        "Lemondoge",
-                       "Mgpena"
+                       "Mgpena",
+                       "Rubentl134"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentación]]\n* [[mw:API:FAQ|Preguntas frecuentes]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Lista de correos]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API de anuncios]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Errores y peticiones]\n</div>\n<strong>Estado:</strong> Todas las características que se muestran en esta página debería funcionar, pero la API aún está en desarrollo activo y puede cambiar en cualquier momento. Suscríbete a [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la lista de correo de mediawiki-api-announce] para estar al día de las actualizaciones.\n\n<strong>Solicitudes erróneas:</strong> Cuando se envían solicitudes erróneas a la API, se envía un encabezado HTTP con la clave \"MediaWiki-API-Error\" y ambos valores, del encabezado y el código de error, se establecerán en el mismo valor. Para más información, véase [[mw:API:Errors_and_warnings|API: Errores y advertencias]].\n\n<strong>Pruebas:</strong> para facilitar las pruebas de solicitudes a la API, consulta [[Special:ApiSandbox]].",
        "apihelp-query+allusers-param-limit": "Cuántos nombres de usuario se devolverán.",
        "apihelp-query+allusers-param-activeusers": "Solo listar usuarios activos en {{PLURAL:$1|el último día|los $1 últimos días}}.",
        "apihelp-query+allusers-example-Y": "Listar usuarios que empiecen por <kbd>Y</kbd>.",
+       "apihelp-query+filerepoinfo-example-login": "Captura de las solicitudes que puede ser utilizadas al comienzo de inicio de sesión.",
        "apihelp-query+backlinks-param-pageid": "Identificador de página que buscar. No puede usarse junto con <var>$1title</var>",
        "apihelp-query+backlinks-param-limit": "Cuántas páginas en total se devolverán. Si está activo <var>$1redirect</var>, el límite aplica a cada nivel por separado (lo que significa que se pueden devolver hasta 2 * <var>$1limit</var> resultados).",
        "apihelp-query+backlinks-example-simple": "Mostrar enlaces a <kbd>Main page</kbd>.",
index f25039a..7efe6c7 100644 (file)
        "apihelp-resetpassword-description-noroutes": "Aucun chemin pour réinitialiser le mot de passe n’est disponible.\n\nActiver les chemins dans <var>[[mw:Manual:$wgPasswordResetRoutes|$wgPasswordResetRoutes]]</var> pour utiliser ce module.",
        "apihelp-resetpassword-param-user": "Utilisateur ayant été réinitialisé.",
        "apihelp-resetpassword-param-email": "Adresse courriel de l’utilisateur ayant été réinitialisé.",
+       "apihelp-resetpassword-param-capture": "Renvoyer les mots de passe temporaires déjà envoyés. Nécessite le droit utilisateur <code>passwordreset</code>.",
+       "apihelp-resetpassword-example-user": "Envoyer un courriel de réinitialisation du mot de passe à l’utilisateur <kbd>Exemple</kbd>.",
        "apihelp-resetpassword-example-email": "Envoyer un courriel pour la réinitialisation de mot de passe à tous les utilisateurs avec une adresse email <kbd>user@example.com</kbd>.",
        "apihelp-revisiondelete-description": "Supprimer et annuler la suppression des révisions.",
        "apihelp-revisiondelete-param-type": "Type de suppression de révision en cours de traitement.",
        "apihelp-undelete-param-watchlist": "Ajouter ou supprimer la page de la liste de suivi de l’utilisateur actuel sans condition, utiliser les préférences ou ne pas modifier le suivi.",
        "apihelp-undelete-example-page": "Annuler la suppression de la page <kbd>Main Page</kbd>.",
        "apihelp-undelete-example-revisions": "Annuler la suppression de deux révisions de la page <kbd>Main Page</kbd>.",
+       "apihelp-unlinkaccount-description": "Supprimer un compte tiers lié de l’utilisateur actuel.",
+       "apihelp-unlinkaccount-example-simple": "Essayer de supprimer le lien de l’utilisateur actuel pour le fournisseur associé avec <kbd>FooAuthenticationRequest</kbd>.",
        "apihelp-upload-description": "Téléverser un fichier, ou obtenir l’état des téléversements en cours.\n\nPlusieurs méthodes sont disponibles :\n* Téléverser directement le contenu du fichier, en utilisant le paramètre <var>$1file</var>.\n* Téléverser le fichier par morceaux, en utilisant les paramètres <var>$1filesize</var>, <var>$1chunk</var>, and <var>$1offset</var>.\n* Pour que le serveur MédiaWiki cherche un fichier depuis une URL, utilisez le paramètre <var>$1url</var>.\n* Terminer un téléversement précédent qui a échoué à cause d’avertissements, en utilisant le paramètre <var>$1filekey</var>.\nNoter que le POST HTTP doit être fait comme un téléversement de fichier (par ex. en utilisant <code>multipart/form-data</code>) en envoyant le <code>multipart/form-data</code>.",
        "apihelp-upload-param-filename": "Nom de fichier cible.",
        "apihelp-upload-param-comment": "Télécharger le commentaire. Utilisé aussi comme texte de la page initiale pour les nouveaux fichiers si <var>$1text</var> n’est pas spécifié.",
        "api-help-permissions-granted-to": "{{PLURAL:$1|Accordé à}} : $2",
        "api-help-right-apihighlimits": "Utiliser des valeurs plus hautes dans les requêtes de l’API (requêtes lentes : $1 ; requêtes rapides : $2). Les limites pour les requêtes lentes s’appliquent aussi aux paramètres multivalués.",
        "api-help-open-in-apisandbox": "<small>[ouvrir dans le bac à sable]</small>",
+       "api-help-authmanager-general-usage": "La procédure générale pour utiliser ce module est la suivante :\n# Récupérer les champs disponibles avec <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> avec <kbd>amirequestsfor=$4</kbd>, et un jeton <kbd>$5</kbd> avec <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]].\n# Présenter les champs à l’utilisateur, et les lui faire soumettre.\n# Faire un envoi à ce module, en fournissant <var>$1returnurl</var> et les champs appropriés.\n# Vérifier le <samp>status</samp> dans la réponse.\n#* Si vous avez reçu <samp>PASS</samp> ou <samp>FAIL</samp>, c’est terminé. L’opération a soit réussi, soit échoué.\n#* Si vous avez reçu <samp>UI</samp>, affichez les nouveaux champs à l’utilisateur et faites-les-lui soumettre. Puis envoyez-les à ce module avec <var>$1continue</var> et l’ensemble des champs appropriés, et recommencez l’étape 4.\n#* Si vous avez reçu <samp>REDIRECT</samp>, envoyez l’utilisateur vers la cible <samp>redirecttarget</samp> et attendez le retour vers <var>$1returnurl</var>. Puis envoyez à ce module avec <var>$1continue</var> et tous les champs passés à l’URL de retour, puis répétez l’étape 4.\n#* Si vous avez reçu <samp>RESTART</samp>, cela veut dire que l’authentification a fonctionné, mais nous n’avons pas de compte utilisateur lié. Vous pouvez traiter cela comme un <samp>UI</samp> ou un <samp>FAIL</samp>.",
+       "api-help-authmanagerhelper-messageformat": "Format à utiliser pour retourner les messages.",
+       "api-help-authmanagerhelper-mergerequestfields": "Fusionner dans un tableau le champ information de toutes les demandes d'authentification.",
+       "api-help-authmanagerhelper-preservestate": "Conserver l'état d'une précédente tentative de connexion qui a échoué, si possible.",
        "api-credits-header": "Remerciements",
        "api-credits": "Développeurs de l’API :\n* Roan Kattouw (développeur en chef Sept. 2007–2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (créateur, développeur en chef Sept. 2006–Sept. 2007)\n* Brad Jorsch (développeur en chef depuis 2013)\n\nVeuillez envoyer vos commentaires, suggestions et questions à mediawiki-api@lists.wikimedia.org\nou remplir un rapport de bogue sur https://phabricator.wikimedia.org/."
 }
index 810062f..37b48b5 100644 (file)
@@ -48,6 +48,7 @@
        "apihelp-block-example-ip-simple": "封禁IP地址<kbd>192.0.2.5</kbd>三天,原因<kbd>First strike</kbd>。",
        "apihelp-block-example-user-complex": "无限期封禁用户<kbd>Vandal</kbd>,原因<kbd>Vandalism</kbd>,并阻止新账户创建和电子邮件发送。",
        "apihelp-changeauthenticationdata-description": "更改当前用户的身份验证数据。",
+       "apihelp-changeauthenticationdata-example-password": "尝试更改当前用户的密码至<kbd>ExamplePassword</kbd>。",
        "apihelp-checktoken-description": "从<kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>检查令牌有效性。",
        "apihelp-checktoken-param-type": "已开始测试的令牌类型。",
        "apihelp-checktoken-param-token": "要测试的令牌。",
@@ -56,6 +57,7 @@
        "apihelp-clearhasmsg-description": "清除当前用户的<code>hasmsg</code>标记。",
        "apihelp-clearhasmsg-example-1": "清除当前用户的<code>hasmsg</code>标记。",
        "apihelp-clientlogin-description": "使用交互式流登录wiki。",
+       "apihelp-clientlogin-example-login": "开始作为用户<kbd>Example</kbd>和密码<kbd>ExamplePassword</kbd>登录至wiki的过程。",
        "apihelp-compare-description": "获取2个页面之间的差别。\n\n用于“from”和“to”的修订版本号、页面标题或页面 ID 必须获得通过。",
        "apihelp-compare-param-fromtitle": "要比较的第一个标题。",
        "apihelp-compare-param-fromid": "要比较的第一个页面 ID。",
@@ -65,7 +67,7 @@
        "apihelp-compare-param-torev": "要比较的第二个修订版本。",
        "apihelp-compare-example-1": "在版本1和2中创建差异。",
        "apihelp-createaccount-description": "创建一个新用户账户。",
-       "apihelp-createaccount-example-create": "开始创建用户<kbd>Example</kbd>和密码<kbd>ExamplePassword</kbd>的程。",
+       "apihelp-createaccount-example-create": "开始创建用户<kbd>Example</kbd>和密码<kbd>ExamplePassword</kbd>的程。",
        "apihelp-createaccount-param-name": "用户名。",
        "apihelp-createaccount-param-password": "密码(如果设置<var>$1mailpassword</var>则忽略)。",
        "apihelp-createaccount-param-domain": "外部身份验证域 (可选)。",
        "apihelp-import-param-rootpage": "作为此页面的子页面导入。不能与<var>$1namespace</var>一起使用。",
        "apihelp-import-example-import": "将页面[[meta:Help:ParserFunctions]]连带完整历史导入至100名字空间。",
        "apihelp-linkaccount-description": "将来自第三方提供商的账户链接至当前用户。",
-       "apihelp-login-description": "登录并获得身份验证Cookie。\n\n在成功登录的情况下,所需的Cookie将包含在HTTP响应头中。在登录失败的情况下,进一步的尝试可能会被自动密码猜解攻击的限制所遏制。",
-       "apihelp-login-description-nonauthmanager": "登录并获得身份验证Cookie。\n\n在成功登录的情况下,所需的Cookie将包含在HTTP响应头中。在登录失败的情况下,进一步的尝试可能会被自动密码猜解攻击的限制所遏制。",
+       "apihelp-linkaccount-example-link": "开始从<kbd>Example</kbd>链接至账户的过程。",
+       "apihelp-login-description": "登录并获取身份验证Cookie。\n\n此操作只应与[[Special:BotPasswords]]一起使用;用于主账户登录的方式已弃用,并可能在没有警告的情况下失败。要安全登录主账户,请使用<kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>。",
+       "apihelp-login-description-nobotpasswords": "登录并获取身份验证Cookie。\n\n此操作已弃用,并可能在没有警告的情况下失败。要安全登录,请使用<kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>。",
+       "apihelp-login-description-nonauthmanager": "登录并获取身份验证Cookie。\n\n在成功登录的情况下,所需的Cookie将包含在HTTP响应头中。在登录失败的情况下,进一步的尝试可能会被自动密码猜解攻击的限制所遏制。",
        "apihelp-login-param-name": "用户名。",
        "apihelp-login-param-password": "密码。",
        "apihelp-login-param-domain": "域名(可选)。",
        "apihelp-move-param-watchlist": "无条件地将页面加入至当前用户的监视列表或将其移除,使用设置或不更改监视。",
        "apihelp-move-param-ignorewarnings": "忽略任何警告。",
        "apihelp-move-example-move": "移动<kbd>Badtitle</kbd>到<kbd>Goodtitle</kbd>,不保留重定向。",
-       "apihelp-opensearch-description": "使用OpenSearch协议搜索wiki。",
+       "apihelp-opensearch-description": "使用OpenSearch协议搜索wiki。",
        "apihelp-opensearch-param-search": "搜索字符串。",
        "apihelp-opensearch-param-limit": "要返回的结果最大数。",
        "apihelp-opensearch-param-namespace": "搜索的名字空间。",
        "apihelp-opensearch-param-warningsaserror": "如果警告通过<kbd>format=json</kbd>提升,返回一个API错误而不是忽略它们。",
        "apihelp-opensearch-example-te": "查找以<kbd>Te</kbd>开头的页面。",
        "apihelp-options-description": "更改当前用户的偏好设置。\n\n只有注册在核心或者已安装扩展中的选项,或者具有<code>userjs-</code>键值前缀(旨在被用户脚本使用)的选项可被设置。",
-       "apihelp-options-param-reset": "重置偏好设置到网站默认设置。",
+       "apihelp-options-param-reset": "将参数设置重置为网站默认值。",
        "apihelp-options-param-resetkinds": "当<var>$1reset</var>选项被设置时,要重置的选项类型列表。",
        "apihelp-options-param-change": "更改列表,以name=value格式化(例如skin=vector)。值不能包含管道字符。如果没提供值(甚至没有等号),例如optionname|otheroption|...,选项将重置为默认值。",
        "apihelp-options-param-optionname": "应设置为由<var>$1optionvalue</var>提供值的选项名称。",
        "apihelp-parse-description": "解析内容并返回解析器输出。\n\n参见<kbd>[[Special:ApiHelp/query|action=query]]</kbd>的各种prop-module以从页面的当前版本获得信息。\n\n这里有几种方法可以指定解析的文本:\n# 指定一个页面或修订,使用<var>$1page</var>、<var>$1pageid</var>或<var>$1oldid</var>。\n# 明确指定内容,使用<var>$1text</var>、<var>$1title</var>和<var>$1contentmodel</var>。\n# 只指定一段摘要解析。<var>$1prop</var>应提供一个空值。",
        "apihelp-parse-param-title": "文本属于的页面标题。如果省略,<var>$1contentmodel</var>就必须被指定,且[[API]]将作为标题使用。",
        "apihelp-parse-param-text": "要解析的文本。使用<var>$1title</var>或<var>$1contentmodel</var>以控制内容模型。",
-       "apihelp-parse-param-summary": "要解析的摘要。",
+       "apihelp-parse-param-summary": "要解析的摘要。",
        "apihelp-parse-param-page": "解析此页的内容。不能与<var>$1text</var>和<var>$1title</var>一起使用。",
        "apihelp-parse-param-pageid": "解析此页的内容。覆盖<var>$1page</var>。",
        "apihelp-parse-param-redirects": "如果<var>$1page</var>或<var>$1pageid</var>被设置为一个重定向,则解析它。",
        "apihelp-query+watchlistraw-param-totitle": "要列举的最终标题(带名字空间前缀)。",
        "apihelp-query+watchlistraw-example-simple": "列出当前用户的监视列表中的页面。",
        "apihelp-query+watchlistraw-example-generator": "检索当前用户监视列表上的页面的页面信息。",
+       "apihelp-removeauthenticationdata-description": "从当前用户移除身份验证数据。",
+       "apihelp-removeauthenticationdata-example-simple": "尝试移除当前用户的<kbd>FooAuthenticationRequest</kbd>数据。",
        "apihelp-resetpassword-description": "向用户发送密码重置邮件。",
        "apihelp-resetpassword-param-user": "正在重置的用户。",
        "apihelp-resetpassword-param-email": "正在重置用户的电子邮件地址。",
        "api-help-permissions-granted-to": "{{PLURAL:$1|授予}}:$2",
        "api-help-right-apihighlimits": "在API查询中使用更高的上限(慢查询:$1;快查询:$2)。慢查询的限制也适用于多值参数。",
        "api-help-open-in-apisandbox": "<small>[在沙盒中打开]</small>",
+       "api-help-authmanagerhelper-request": "使用此身份验证请求,通过返回自<kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd>的<samp>id</samp>与<kbd>amirequestsfor=$1</kbd>。",
        "api-help-authmanagerhelper-messageformat": "返回消息使用的格式。",
        "api-credits-header": "制作人员",
        "api-credits": "API 开发人员:\n* Yuri Astrakhan(创建者,2006年9月~2007年9月的开发组领导)\n* Roan Kattouw(2007年9月~2009年的开发组领导)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Brad Jorsch(2013年至今的开发组领导)\n\n请将您的评论、建议和问题发送至mediawiki-api@lists.wikimedia.org,或提交错误请求至https://phabricator.wikimedia.org/。"
index 09b0baa..cd25352 100644 (file)
  *
  * @file
  */
+use MediaWiki\Services\SalvageableService;
+use Wikimedia\Assert\Assert;
 
 /**
  * Factory class to create Config objects
  *
  * @since 1.23
  */
-class ConfigFactory {
+class ConfigFactory implements SalvageableService {
 
        /**
         * Map of config name => callback
@@ -50,6 +52,41 @@ class ConfigFactory {
                return \MediaWiki\MediaWikiServices::getInstance()->getConfigFactory();
        }
 
+       /**
+        * Re-uses existing Cache objects from $other. Cache objects are only re-used if the
+        * registered factory function for both is the same. Cache config is not copied,
+        * and only instances of caches defined on this instance with the same config
+        * are copied.
+        *
+        * @see SalvageableService::salvage()
+        *
+        * @param SalvageableService $other The object to salvage state from. $other must have the
+        * exact same type as $this.
+        */
+       public function salvage( SalvageableService $other ) {
+               Assert::parameterType( self::class, $other, '$other' );
+
+               /** @var ConfigFactory $other */
+               foreach ( $other->factoryFunctions as $name => $otherFunc ) {
+                       if ( !isset( $this->factoryFunctions[$name] ) ) {
+                               continue;
+                       }
+
+                       // if the callback function is the same, salvage the Cache object
+                       // XXX: Closures are never equal!
+                       if ( isset( $other->configs[$name] )
+                               && $this->factoryFunctions[$name] == $otherFunc
+                       ) {
+                               $this->configs[$name] = $other->configs[$name];
+                               unset( $other->configs[$name] );
+                       }
+               }
+
+               // disable $other
+               $other->factoryFunctions = [];
+               $other->configs = [];
+       }
+
        /**
         * @return string[]
         */
@@ -67,23 +104,11 @@ class ConfigFactory {
         * @throws InvalidArgumentException If an invalid callback is provided
         */
        public function register( $name, $callback ) {
-               if ( $callback instanceof Config ) {
-                       $instance = $callback;
-
-                       // Register a callback anyway, for consistency. Note that getConfigNames()
-                       // relies on $factoryFunctions to have all config names.
-                       $callback = function() use ( $instance ) {
-                               return $instance;
-                       };
-               } else {
-                       $instance = null;
-               }
-
-               if ( !is_callable( $callback ) ) {
+               if ( !is_callable( $callback ) && !( $callback instanceof Config ) ) {
                        throw new InvalidArgumentException( 'Invalid callback provided' );
                }
 
-               $this->configs[$name] = $instance;
+               unset( $this->configs[$name] );
                $this->factoryFunctions[$name] = $callback;
        }
 
@@ -105,7 +130,13 @@ class ConfigFactory {
                        if ( !isset( $this->factoryFunctions[$key] ) ) {
                                throw new ConfigException( "No registered builder available for $name." );
                        }
-                       $conf = call_user_func( $this->factoryFunctions[$key], $this );
+
+                       if ( $this->factoryFunctions[$key] instanceof Config ) {
+                               $conf = $this->factoryFunctions[$key];
+                       } else {
+                               $conf = call_user_func( $this->factoryFunctions[$key], $this );
+                       }
+
                        if ( $conf instanceof Config ) {
                                $this->configs[$name] = $conf;
                        } else {
index ac08374..1f7f3b0 100644 (file)
@@ -389,14 +389,14 @@ class LinksUpdate extends SqlDataUpdate implements EnqueueableDataUpdate {
                foreach ( $deleteWheres as $deleteWhere ) {
                        $this->mDb->delete( $table, $deleteWhere, __METHOD__ );
                        $this->mDb->commit( __METHOD__, 'flush' );
-                       wfGetLBFactory()->waitForReplication();
+                       wfGetLBFactory()->waitForReplication( [ 'wiki' => $this->mDb->getWikiID() ] );
                }
 
                $insertBatches = array_chunk( $insertions, self::BATCH_SIZE );
                foreach ( $insertBatches as $insertBatch ) {
                        $this->mDb->insert( $table, $insertBatch, __METHOD__, 'IGNORE' );
                        $this->mDb->commit( __METHOD__, 'flush' );
-                       wfGetLBFactory()->waitForReplication();
+                       wfGetLBFactory()->waitForReplication( [ 'wiki' => $this->mDb->getWikiID() ] );
                }
 
                if ( count( $insertions ) ) {
diff --git a/includes/exception/BadRequestError.php b/includes/exception/BadRequestError.php
new file mode 100644 (file)
index 0000000..5fcf0e6
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * An error page that emits an HTTP 400 Bad Request status code.
+ *
+ * @since 1.28
+ * @ingroup Exception
+ */
+class BadRequestError extends ErrorPageError {
+
+       public function report() {
+               global $wgOut;
+               $wgOut->setStatusCode( 400 );
+               parent::report();
+       }
+}
index 3f4c213..40c18a4 100644 (file)
 
 /**
  * Show an error page on a badtitle.
- * Similar to ErrorPage, but emit a 400 HTTP error code to let mobile
- * browser it is not really a valid content.
+ *
+ * Uses BadRequestError to emit a 400 HTTP error code to ensure caching proxies and
+ * mobile browsers know not to cache it as valid content. (T35646)
  *
  * @since 1.19
  * @ingroup Exception
  */
-class BadTitleError extends ErrorPageError {
+class BadTitleError extends BadRequestError {
        /**
         * @param string|Message|MalformedTitleException $msg A message key (default: 'badtitletext'), or
         *     a MalformedTitleException to figure out things from
@@ -45,17 +46,4 @@ class BadTitleError extends ErrorPageError {
                        parent::__construct( 'badtitle', $msg, $params );
                }
        }
-
-       /**
-        * Just like ErrorPageError::report() but additionally set
-        * a 400 HTTP status code (bug 33646).
-        */
-       public function report() {
-               global $wgOut;
-
-               // bug 33646: a badtitle error page need to return an error code
-               // to let mobile browser now that it is not a normal page.
-               $wgOut->setStatusCode( 400 );
-               parent::report();
-       }
 }
diff --git a/includes/installer/i18n/anp.json b/includes/installer/i18n/anp.json
new file mode 100644 (file)
index 0000000..a55ba75
--- /dev/null
@@ -0,0 +1,13 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Angpradesh"
+               ]
+       },
+       "config-desc": "मिडियाविकि लेली इंस्टॉलर",
+       "config-title": "मीडियाविकी  $1 इंस्टॉलेशन",
+       "config-information": "जानकारी",
+       "config-localsettings-upgrade": "<code>LocalSettings.php</code> फ़ाइल पैलऽ गेलै ।\nई स्थापना क॑ अपग्रेड करै लेली , नीचाँ देलऽ गेलऽ बॉक्स म॑ <code>$wgUpgradeKey</code>  के मान दर्ज करऽ।\nआपन॑ क॑ <code>LocalSettings.php</code> म॑ मिली जैतै ।",
+       "config-localsettings-cli-upgrade": "<code>LocalSettings.php</code> फ़ाइल पैलऽ गेलऽ छै ।\nई स्थापना क॑ अपग्रेड करै लेली , बदला म॑ कृपया करी क॑ ई चलाबऽ <code>update.php</code>",
+       "config-localsettings-key": "नवीनीकरण कुंजी"
+}
index 55fe156..d493002 100644 (file)
@@ -71,13 +71,13 @@ class CategoryPage extends Article {
                }
 
                $title = $this->getTitle();
-               if ( NS_CATEGORY == $title->getNamespace() ) {
+               if ( $title->inNamespace( NS_CATEGORY ) ) {
                        $this->openShowCategory();
                }
 
                parent::view();
 
-               if ( NS_CATEGORY == $title->getNamespace() ) {
+               if ( $title->inNamespace( NS_CATEGORY ) ) {
                        $this->closeShowCategory();
                }
        }
index c6d3f6e..5d230c0 100644 (file)
@@ -872,7 +872,7 @@ class SpecialUndelete extends SpecialPage {
                        "ids" => $revisions,
                        "target" => $this->mTargetObj->getPrefixedText()
                ];
-               $url = SpecialPage::getTitleFor( "RevisionDelete" )->getFullURL( $query );
+               $url = SpecialPage::getTitleFor( 'Revisiondelete' )->getFullURL( $query );
                $this->getOutput()->redirect( $url );
        }
 
index b4ea732..baa55f0 100644 (file)
@@ -75,7 +75,7 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
                $this->target = Title::newFromText( $opts->getValue( 'target' ) );
                if ( !$this->target ) {
                        if ( !$this->including() ) {
-                               $this->buildForm();
+                               $out->addHTML( $this->whatlinkshereForm() );
                        }
 
                        return;
@@ -200,8 +200,12 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
                ) {
                        if ( 0 == $level ) {
                                if ( !$this->including() ) {
-                                       $this->buildForm();
+                                       $out->addHTML( $this->whatlinkshereForm() );
 
+                                       // Show filters only if there are links
+                                       if ( $hidelinks || $hidetrans || $hideredirs || $hideimages ) {
+                                               $out->addHTML( $this->getFilterPanel() );
+                                       }
                                        $errMsg = is_int( $namespace ) ? 'nolinkshere-ns' : 'nolinkshere';
                                        $out->addWikiMsg( $errMsg, $this->target->getPrefixedText() );
                                        $out->setStatusCode( 404 );
@@ -265,7 +269,8 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
 
                if ( $level == 0 ) {
                        if ( !$this->including() ) {
-                               $this->buildForm();
+                               $out->addHTML( $this->whatlinkshereForm() );
+                               $out->addHTML( $this->getFilterPanel() );
                                $out->addWikiMsg( 'linkshere', $this->target->getPrefixedText() );
 
                                $prevnext = $this->getPrevNext( $prevId, $nextId );
@@ -439,7 +444,7 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
                return $this->msg( 'viewprevnext' )->rawParams( $prev, $next, $nums )->escaped();
        }
 
-       protected function buildForm() {
+       function whatlinkshereForm() {
                // We get nicer value from the title object
                $this->opts->consumeValue( 'target' );
                // Reset these for new requests
@@ -450,57 +455,88 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
                $nsinvert = $this->opts->consumeValue( 'invert' );
 
                # Build up the form
+               $f = Xml::openElement( 'form', [ 'action' => wfScript() ] );
 
-               $hiddenFields = [
-                       'title' => $this->getPageTitle()->getPrefixedDBkey(),
-               ];
+               # Values that should not be forgotten
+               $f .= Html::hidden( 'title', $this->getPageTitle()->getPrefixedText() );
+               foreach ( $this->opts->getUnconsumedValues() as $name => $value ) {
+                       $f .= Html::hidden( $name, $value );
+               }
 
-               $formDescriptor = [
-                       'target' => [
-                               'type' => 'title',
-                               'name' => 'target',
-                               'label-message' => 'whatlinkshere-page',
-                               'default' => $this->opts->getValue( 'target' ),
-                       ],
+               $f .= Xml::fieldset( $this->msg( 'whatlinkshere' )->text() );
 
-                       'namespace' => [
-                               'type' => 'namespaceselect',
-                               'name' => 'namespace',
-                               'label-message' => 'namespace',
+               # Target input (.mw-searchInput enables suggestions)
+               $f .= Xml::inputLabel( $this->msg( 'whatlinkshere-page' )->text(), 'target',
+                       'mw-whatlinkshere-target', 40, $target, [ 'class' => 'mw-searchInput' ] );
+
+               $f .= ' ';
+
+               # Namespace selector
+               $f .= Html::namespaceSelector(
+                       [
+                               'selected' => $namespace,
                                'all' => '',
-                       ],
-
-                       'invert' => [
-                               'type' => 'check',
-                               'name' => 'invert',
-                               'label-message' => 'invert',
-                               'default' => false,
-                       ],
-               ];
+                               'label' => $this->msg( 'namespace' )->text()
+                       ], [
+                               'name' => 'namespace',
+                               'id' => 'namespace',
+                               'class' => 'namespaceselector',
+                       ]
+               );
+
+               $f .= '&#160;' .
+                       Xml::checkLabel(
+                               $this->msg( 'invert' )->text(),
+                               'invert',
+                               'nsinvert',
+                               $nsinvert,
+                               [ 'title' => $this->msg( 'tooltip-whatlinkshere-invert' )->text() ]
+                       );
+
+               $f .= ' ';
+
+               # Submit
+               $f .= Xml::submitButton( $this->msg( 'whatlinkshere-submit' )->text() );
 
-               $filters = [ 'hidetrans', 'hidelinks', 'hideredirs' ];
-               if ( $this->target instanceof Title &&
-                       $this->target->getNamespace() == NS_FILE ) {
-                       $filters[] = 'hideimages';
+               # Close
+               $f .= Xml::closeElement( 'fieldset' ) . Xml::closeElement( 'form' ) . "\n";
+
+               return $f;
+       }
+
+       /**
+        * Create filter panel
+        *
+        * @return string HTML fieldset and filter panel with the show/hide links
+        */
+       function getFilterPanel() {
+               $show = $this->msg( 'show' )->escaped();
+               $hide = $this->msg( 'hide' )->escaped();
+
+               $changed = $this->opts->getChangedValues();
+               unset( $changed['target'] ); // Already in the request title
+
+               $links = [];
+               $types = [ 'hidetrans', 'hidelinks', 'hideredirs' ];
+               if ( $this->target->getNamespace() == NS_FILE ) {
+                       $types[] = 'hideimages';
                }
 
-               foreach ( $filters as $filter ) {
-                       $formDescriptor[$filter] = [
-                               'type' => 'check',
-                               'name' => $filter,
-                               'label' => $this->msg( 'whatlinkshere-' . $filter ),
-                               'value' => false,
-                       ];
+               // Combined message keys: 'whatlinkshere-hideredirs', 'whatlinkshere-hidetrans',
+               // 'whatlinkshere-hidelinks', 'whatlinkshere-hideimages'
+               // To be sure they will be found by grep
+               foreach ( $types as $type ) {
+                       $chosen = $this->opts->getValue( $type );
+                       $msg = $chosen ? $show : $hide;
+                       $overrides = [ $type => !$chosen ];
+                       $links[] = $this->msg( "whatlinkshere-{$type}" )->rawParams(
+                               $this->makeSelfLink( $msg, array_merge( $changed, $overrides ) ) )->escaped();
                }
 
-               $htmlForm = HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() )
-                       ->addHiddenFields( $hiddenFields )
-                       ->setWrapperLegendMsg( 'whatlinkshere' )
-                       ->setSubmitTextMsg( 'whatlinkshere-submit' )
-                       ->setAction( $this->getPageTitle()->getLocalURL() )
-                       ->setMethod( 'get' )
-                       ->prepareForm()
-                       ->displayForm( false );
+               return Xml::fieldset(
+                       $this->msg( 'whatlinkshere-filters' )->text(),
+                       $this->getLanguage()->pipeList( $links )
+               );
        }
 
        /**
index 71023c0..ce2ac83 100644 (file)
@@ -3859,6 +3859,7 @@ class User implements IDBAccessObject {
                if ( !$session->canSetUser() ) {
                        \MediaWiki\Logger\LoggerFactory::getInstance( 'session' )
                                ->warning( __METHOD__ . ": Cannot log out of an immutable session" );
+                       $error = 'immutable';
                } elseif ( !$session->getUser()->equals( $this ) ) {
                        \MediaWiki\Logger\LoggerFactory::getInstance( 'session' )
                                ->warning( __METHOD__ .
@@ -3866,6 +3867,7 @@ class User implements IDBAccessObject {
                                );
                        // But we still may as well make this user object anon
                        $this->clearInstanceCache( 'defaults' );
+                       $error = 'wronguser';
                } else {
                        $this->clearInstanceCache( 'defaults' );
                        $delay = $session->delaySave();
@@ -3874,7 +3876,13 @@ class User implements IDBAccessObject {
                        $session->setUser( new User );
                        $session->set( 'wsUserID', 0 ); // Other code expects this
                        ScopedCallback::consume( $delay );
+                       $error = false;
                }
+               \MediaWiki\Logger\LoggerFactory::getInstance( 'authmanager' )->info( 'Logout', [
+                       'event' => 'logout',
+                       'successful' => $error === false,
+                       'status' => $error ?: 'success',
+               ] );
        }
 
        /**
index 53300c5..5b18365 100644 (file)
@@ -7,7 +7,7 @@
        "--builtin-classes": true,
        "--processes": "0",
        "--warnings-exit-nonzero": true,
-       "--external": "HTMLElement,HTMLDocument,Window,Blob,File,MouseEvent,KeyboardEvent,HTMLIframeElement,HTMLInputElement,XMLDocument",
+       "--external": "Blob,File,HTMLDocument,HTMLElement,HTMLIframeElement,HTMLInputElement,KeyboardEvent,MouseEvent,Node,Window,XMLDocument",
        "--output": "docs/js",
        "--": [
                "maintenance/jsduck/external.js",
index 2621af9..3012c14 100644 (file)
        "loginreqlink": "लॉग-इन",
        "newarticle": "(नया)",
        "newarticletext": "आपनॆ जे लेख चाहै छियै वू अखनी तलक लिखलॊ नै गेलॊ छै. इ लेख लिखै लेली नीचे टाइप करॊ. सहायता लेली [$1 ऐन्जां] क्लीक करॊ.\n\nजों आपनॆ यहां पर गलती सॆं आबी गेलॊ छियै तॆ आपनॊ ब्राउज़र कॆ बॅक (back) पर क्लीक करॊ.",
-       "noarticletext": "\nHindi (hi)फ़िलहाल इ पन्ना पर कोनो सामग्री नै छै.\nआपन॑ अन्य पन्ना मं॑ [[Special:Search/{{PAGENAME}}|इ सामग्री के खोज]] कर॑ सकै छियै,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} संबंधित चिट्ठा मं॑ खोज कर॑ सकै छियै],\nया [{{fullurl:{{FULLPAGENAME}}|action=edit}} इ पन्ना क॑ संपादित कर॑ सक॑ छियै]</span>.",
+       "noarticletext": "फ़िलहाल ई पन्ना पर कोनो सामग्री नै छै.\nआपन॑ अन्य पन्ना मं॑ [[Special:Search/{{PAGENAME}}|ई सामग्री के खोज]] कर॑ सकै छियै,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} संबंधित चिट्ठा मं॑ खोज कर॑ सकै छियै],\nया [{{fullurl:{{FULLPAGENAME}}|action=edit}} इ पन्ना क॑ संपादित कर॑ सक॑ छियै]</span>.",
        "noarticletext-nopermission": "\nफ़िलहाल इ पन्ना पर कोय सामग्री नै छै.\nआपने अन्य पन्ना म॑ [[Special:Search/{{PAGENAME}}|इ सामग्री केरऽ खोज]] कर॑ सकै छियै,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} संबंधित चिट्ठा मं॑ खोज कर॑ सकै छियै],\nया फेरू [{{fullurl:{{FULLPAGENAME}}|action=edit}} इ पन्ना क॑ संपादित कर॑ सकै छियै]</span>.",
        "previewnote": "'''याद रखॊ, इ केवल एगॊ झलक छेकै आरू अभी तलक सुरक्षित  नै करलॊ गेलॊ छै!'''",
        "editing": "$1 केरऽ सम्पादन चली रहलऽ छै.",
        "contributions": "{{GENDER:$1|सदस्य}} योगदान",
        "contributions-title": "$1 लेली सदस्यॊ के योगदान",
        "mycontris": "योगदान",
+       "anoncontribs": "योगदान",
        "contribsub2": "$1 लेली ($2)",
        "uctop": "(उपर)",
        "month": "इ महिना स॑ (आरू पुरान॑):",
        "revertmove": "पुरानॊ अवतरण पर लॆ चलॊ (रिवर्ट)",
        "export": "पन्ना क॑ निर्यात करऽ",
        "thumbnail-more": "बड़ा करऽ",
-       "tooltip-pt-userpage": "आपन॑ के प्रयोक्ता पन्ना",
-       "tooltip-pt-mytalk": "आपन॑ के वार्ता पन्ना",
-       "tooltip-pt-preferences": "आपन॑ के वरीयता",
+       "tooltip-pt-userpage": "{{GENDER:|आपन॑ के प्रयोक्ता}} पन्ना",
+       "tooltip-pt-mytalk": "{{GENDER:|आपन॑ के}} वार्ता पृष्ठ",
+       "tooltip-pt-preferences": "{{GENDER:|आपन॑ के}} वरीयता",
        "tooltip-pt-watchlist": "आपन॑ के ध्यान देलऽ पन्ना के सूची",
-       "tooltip-pt-mycontris": "आपन॑ के योगदानऽ के सूची",
+       "tooltip-pt-mycontris": "{{GENDER:|आपन॑ के}} योगदान",
        "tooltip-pt-login": "आपन॑ सं॑ सत्रारंभ करै के गुज़ारिश छै; लेकिन इ अनिवार्य नै छै.",
        "tooltip-pt-logout": "सत्रांत",
        "tooltip-pt-createaccount": "हमरऽ सुझाव छै कि तोंय खाता बनाबऽ आरू लॉगिन करऽ, हालाँकि अंदर प्रवेश करै लेली इ अनिवार्य नै छै",
        "tooltip-t-recentchangeslinked": "इ पन्ना स॑ जुड़लऽ पन्ना पर होलऽ हाल केरऽ बदलाव",
        "tooltip-feed-rss": "इ पन्ना के आरएसएस फ़ीड",
        "tooltip-feed-atom": "इ पन्ना के अणु फ़ीड",
-       "tooltip-t-contributions": " सदस्य के योगदान केरऽ सूची देखियै",
+       "tooltip-t-contributions": "{{GENDER:$1| केरऽ ई साल}} म॑ सदस्य के योगदान केरऽ सूची देखियै",
        "tooltip-t-emailuser": "इस सदस्य कॆ इमेल भेजॊ",
        "tooltip-t-upload": "फाईल लादऽ (अपलोड )",
        "tooltip-t-specialpages": "ख़ास पन्ना केरऽ सूची",
index a8ab056..0a6fab4 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|anterior|anteriores $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|siguiente|siguientes $1}}",
        "whatlinkshere-links": "← enllaces",
-       "whatlinkshere-hideredirs": "Anubrir redireiciones",
-       "whatlinkshere-hidetrans": "Anubrir tresclusiones",
-       "whatlinkshere-hidelinks": "Tapecer enllaces",
-       "whatlinkshere-hideimages": "Anubrir los enllaces al ficheru",
+       "whatlinkshere-hideredirs": "$1 redireiciones",
+       "whatlinkshere-hidetrans": "$1 tresclusiones",
+       "whatlinkshere-hidelinks": "$1 enllaces",
+       "whatlinkshere-hideimages": "$1 los enllaces al ficheru",
        "whatlinkshere-filters": "Peñeres",
        "whatlinkshere-submit": "Dir",
        "autoblockid": "Autobloquiar #$1",
index 40e47b4..4ce3c93 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|قاباقکی|قاباقکی $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|سونراکی|سونراکی $1}}",
        "whatlinkshere-links": "← باغلانتیلار",
-       "whatlinkshere-hideredirs": "یول‌لاندیرمالاری گیزلت",
+       "whatlinkshere-hideredirs": "یول‌لاندیرمالاری $1",
        "whatlinkshere-hidetrans": "علاوه‌لری $1",
        "whatlinkshere-hidelinks": "باغلانتیلاری $1",
        "whatlinkshere-hideimages": "فایل باغلانتیلارینی $1",
index a50f7d8..b53b8cb 100644 (file)
        "createacct-submit": "Стварыць рахунак",
        "createacct-another-submit": "Стварыць рахунак",
        "createacct-continue-submit": "Працягнуць стварэньне рахунку",
+       "createacct-another-continue-submit": "Працягнуць стварэньне рахунку",
        "createacct-benefit-heading": "{{SITENAME}} створаная людзьмі, такімі як вы.",
        "createacct-benefit-body1": "{{PLURAL:$1|праўка|праўкі|правак}}",
        "createacct-benefit-body2": "{{PLURAL:$1|старонка|старонкі|старонак}}",
        "passwordsent": "Новы пароль быў дасланы на адрас электроннай пошты ўдзельніка «$1».\nКалі ласка, увайдзіце ў сыстэму пасьля яго атрыманьня.",
        "blocked-mailpassword": "З Вашага IP-адрасу забароненыя рэдагаваньні. Каб пазьбегнуць злоўжываньняў, з гэтага IP-адрасу забаронена аднаўляць пароль.",
        "eauthentsent": "Пацьверджаньне было дасланае на пазначаны адрас электроннай пошты.\nУ лісьце ўтрымліваюцца інструкцыі, па выкананьні якіх Вы зможаце пацьвердзіць, што адрас сапраўды належыць Вам, і на гэты адрас будзе дасылацца пошта адсюль.",
-       "throttled-mailpassword": "Ліст пра скіданьне паролю ўжо было даслана за {{PLURAL:$1|$1 апошнюю гадзіну|$1 апошнія гадзіны|$1 апошніх гадзінаў}}.\nДля прадухіленьня злоўжываньняў напамін будзе дасылацца не часьцей як аднойчы ў $1 {{PLURAL:$1|гадзіну|гадзіны|гадзінаў}}.",
+       "throttled-mailpassword": "Ліст пра скіданьне паролю ўжо быў дасланы за $1 {{PLURAL:$1|апошнюю гадзіну|апошнія гадзіны|апошніх гадзінаў}}.\nКаб пазьбегнуць злоўжываньняў напамін будзе дасылацца не часьцей як аднойчы за $1 {{PLURAL:$1|гадзіну|гадзіны|гадзінаў}}.",
        "mailerror": "Памылка пры адпраўцы электроннай пошты: $1",
        "acct_creation_throttle_hit": "Наведвальнікі гэтай вікі, якія карысталіся Вашым ІР-адрасам, ужо стварылі $1 {{PLURAL:$1|рахунак у|рахункі ў|рахункаў у}} апошнія дні, што перавышае максымальную дазволеную колькасьць за гэты пэрыяд.\nУ выніку, наведвальнікі, якія карыстаюцца гэтым ІР-адрасам, ня могуць стварыць зараз болей рахункаў.",
        "emailauthenticated": "Ваш адрас электроннай пошты быў пацьверджаны $2 у $3.",
        "whatlinkshere-prev": "{{PLURAL:$1|папярэдняя|папярэднія}} $1",
        "whatlinkshere-next": "{{PLURAL:$1|наступная|наступныя}} $1",
        "whatlinkshere-links": "← спасылкі",
-       "whatlinkshere-hideredirs": "Схаваць перанакіраваньні",
-       "whatlinkshere-hidetrans": "Схаваць уключэньні",
-       "whatlinkshere-hidelinks": "Схаваць спасылкі",
-       "whatlinkshere-hideimages": "Схаваць спасылкі на файлы",
+       "whatlinkshere-hideredirs": "$1 перасылак",
+       "whatlinkshere-hidetrans": "$1 улучэнняў",
+       "whatlinkshere-hidelinks": "$1 спасылак",
+       "whatlinkshere-hideimages": "$1 спасылак на выявы",
        "whatlinkshere-filters": "Фільтры",
        "whatlinkshere-submit": "Перайсьці",
        "autoblockid": "Аўтаматычнае блякаваньне №$1",
index 433f4c0..3ac10c8 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|папярэдняя|папярэднія $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|наступная|наступныя $1}}",
        "whatlinkshere-links": "← спасылкі",
-       "whatlinkshere-hideredirs": "$1 перасылак",
-       "whatlinkshere-hidetrans": "$1 Ñ\83лÑ\83Ñ\87Ñ\8dннÑ\8fÑ\9e",
-       "whatlinkshere-hidelinks": "$1 Ñ\81паÑ\81Ñ\8bлак",
-       "whatlinkshere-hideimages": "$1 Ñ\81паÑ\81Ñ\8bлак на выявы",
+       "whatlinkshere-hideredirs": "$1 перанакіраваньні",
+       "whatlinkshere-hidetrans": "$1 Ñ\83клÑ\8eÑ\87Ñ\8dнÑ\8cнÑ\96",
+       "whatlinkshere-hidelinks": "$1 Ñ\81паÑ\81Ñ\8bлкÑ\96",
+       "whatlinkshere-hideimages": "$1 Ñ\81паÑ\81Ñ\8bлкÑ\96 на выявы",
        "whatlinkshere-filters": "Фільтры",
        "autoblockid": "Аўтаблакіроўка #$1",
        "block": "Заблакаваць удзельніка",
index edaf14b..e898d66 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|دیمئ|$1 دیمئ مورد}}",
        "whatlinkshere-next": "{{PLURAL:$1|پدئ|$1 پدئ مورد}}",
        "whatlinkshere-links": "→ لینک",
-       "whatlinkshere-hideredirs": "تغیرمسیرانی چیهرداتین",
-       "whatlinkshere-hidetrans": "تراگنجانش‌هانی چیهر داتین",
-       "whatlinkshere-hidelinks": "لینکاني چیهر داتین",
+       "whatlinkshere-hideredirs": "$1 تغییرمسیر",
+       "whatlinkshere-hidetrans": "$1 تراگنجانش‌هان",
+       "whatlinkshere-hidelinks": "$1 لینک",
        "whatlinkshere-hideimages": "$1 فایلی لینکان",
        "whatlinkshere-filters": "فیلتر ئان",
        "autoblockid": "#$1 ئی اوتو بلاک",
index 18d2978..f5c347f 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|পূর্ববর্তী|পূর্ববর্তী $1টি}}",
        "whatlinkshere-next": "{{PLURAL:$1|পরবর্তী|পরবর্তী $1টি}}",
        "whatlinkshere-links": "← সংযোগগুলি",
-       "whatlinkshere-hideredirs": "পুননির্দেশনা আড়াল করো",
-       "whatlinkshere-hidetrans": "অন্তর্ভুক্তকরণ আড়াল করো",
-       "whatlinkshere-hidelinks": "সংযোগ আড়াল করো",
-       "whatlinkshere-hideimages": "ফাইল সংযোগ আড়াল করো",
+       "whatlinkshere-hideredirs": "পুননির্দেশনা $1",
+       "whatlinkshere-hidetrans": "অন্তর্ভুক্তকরণ $1",
+       "whatlinkshere-hidelinks": "সংযোগ $1",
+       "whatlinkshere-hideimages": "$1 ফাইল সংযোগ",
        "whatlinkshere-filters": "ছাকনী",
        "whatlinkshere-submit": "চলো",
        "autoblockid": "স্বয়ংক্রিয় বাধা #$1",
index 31ccf1d..e059776 100644 (file)
@@ -54,7 +54,8 @@
                        "Matma Rex",
                        "KRLS",
                        "Jaumeortola",
-                       "Kippelboy"
+                       "Kippelboy",
+                       "Syum90"
                ]
        },
        "tog-underline": "Subratlla els enllaços:",
        "userlogin-resetpassword-link": "Heu oblidat la contrasenya?",
        "userlogin-helplink2": "Ajuda amb el registre",
        "userlogin-loggedin": "Heu iniciat una sessió com {{GENDER:$1|$1}}.\nFeu servir el formulari de sota per iniciar la sessió com un altre usuari.",
+       "userlogin-reauth": "Heu d'iniciar sessió de nou per comprovar que sou {{GENDER:$1|$1}}.",
        "userlogin-createanother": "Crea un altre compte",
        "createacct-emailrequired": "Adreça electrònica",
        "createacct-emailoptional": "Adreça electrònica (opcional)",
        "noname": "No heu especificat un nom vàlid d'usuari.",
        "loginsuccesstitle": "Sessió iniciada",
        "loginsuccess": "Heu iniciat la sessió a {{SITENAME}} com a «$1».",
-       "nosuchuser": "No hi ha cap usuari anomenat «$1».\nReviseu-ne l'ortografia (recordeu que es distingeixen les majúscules i minúscules), o [[Special:CreateAccount|creeu un compte d'usuari nou]].",
+       "nosuchuser": "No hi ha cap usuari anomenat «$1».\nEls noms d'usuari distingeixen majúscules i minúscules.\nComproveu l'ortografia o [[Special:CreateAccount|creeu un compte nou]].",
        "nosuchusershort": "No hi ha cap usuari anomenat «$1». Comproveu que ho hàgiu escrit correctament.",
        "nouserspecified": "Heu d'especificar un nom d'usuari.",
        "login-userblocked": "Aquest usuari està bloquejat. Inici de sessió no permès.",
        "createacct-another-realname-tip": "El nom real és opcional.\nSi decidiu proporcionar-lo, s'utilitzarà per a reconèixer a l'usuari el seu treball.",
        "pt-login": "Inicia la sessió",
        "pt-login-button": "Inicia sessió",
+       "pt-login-continue-button": "Continua l'inici de sessió",
        "pt-createaccount": "Crea un compte",
        "pt-userlogout": "Finalitza la sessió",
        "php-mail-error-unknown": "Error desconegut en la funció mail() de PHP",
        "passwordreset-emailsentemail": "Si aquesta adreça electrònica està associada al vostre compte, s’enviarà un missatge de restabliment de contrasenya.",
        "passwordreset-emailsent-capture": "S'ha enviat un correu electrònic de reinicialització de contrasenya, tal com es mostra a continuació.",
        "passwordreset-emailerror-capture": "S'ha generat un correu electrònic de renovació de contrasenya, que es mostra a continuació, però ha fallat l'enviament a {{GENDER:$2:l'usuari|la usuària}}: $1",
+       "passwordreset-emailsent-capture2": "{{PLURAL:$1|S'ha enviat el correu|S'han enviat els correus}} de restabliment de {{PLURAL:$1|contrasenya|contrasenyes}}. A continuació es mostra {{PLURAL:$1|l'usuari i contrasenya|la llista d'usuaris i contrasenyes}}.",
+       "passwordreset-invalideamil": "Adreça de correu electrònic no vàlida",
        "changeemail": "Canvia o elimina l’adreça electrònica",
        "changeemail-header": "Empleneu aquest formulari per canviar la vostra adreça electrònica. Si voleu eliminar qualssevol associacions d’adreces electròniques del vostre compte, deixeu en blanc el camp i envieu el formulari.",
        "changeemail-passwordrequired": "Cal que introduïu la vostra contrasenya per confirmar el canvi.",
        "accmailtext": "S'ha enviat una contrasenya aleatòria a $2 per a {{GENDER:$1|l'usuari|la usuària}} [[User talk:$1|$1]].\n\nLa contrasenya per aquest nou compte pot ser canviada a la pàgina de ''[[Special:ChangePassword|canvi de contrasenya]]'' un cop connectat.",
        "newarticle": "(Nou)",
        "newarticletext": "Heu seguit un enllaç a una pàgina que encara no existeix.\nPer a crear-la, comenceu a escriure en l'espai de sota\n(vegeu l'[$1 ajuda] per a més informació).\nSi sou ací per error, simplement cliqueu al botó «Enrere» del vostre navegador.",
-       "anontalkpagetext": "----''Aquesta és la pàgina de discussió d'un usuari anònim que encara no ha creat un compte o que no fa servir el seu nom registrat. Per tant, hem de fer servir la seua adreça IP numèrica per a identificar-lo. Una adreça IP pot ser compartida per molts usuaris. Si sou un usuari anònim, i trobeu que us han adreçat comentaris inoportuns, si us plau, [[Special:CreateAccount|creeu-vos un compte]], o [[Special:UserLogin|entreu en el vostre compte]] si ja en teniu un, per a evitar futures confusions amb altres usuaris anònims.''",
+       "anontalkpagetext": "----\n<em>Aquesta és la pàgina de discussió d'un usuari anònim que encara no ha creat un compte o que no fa servir el seu nom registrat. Per tant, hem de fer servir la seua adreça IP numèrica per a identificar-lo. Una adreça IP pot ser compartida per diversos usuaris. Si sou un usuari anònim i trobeu que us han adreçat comentaris no apropiats, [[Special:CreateAccount|creeu un compte]] o [[Special:UserLogin|inicieu sessió]] per a evitar futures confusions amb altres usuaris anònims.",
        "noarticletext": "Actualment no hi ha text en aquesta pàgina.\nPodeu [[Special:Search/{{PAGENAME}}|cercar aquest títol]] en altres pàgines,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cercar en els registres]\no [{{fullurl:{{FULLPAGENAME}}|action=edit}} crear-la ara]</span>.",
        "noarticletext-nopermission": "Actualment no hi ha text en aquesta pàgina.\nPodeu [[Special:Search/{{PAGENAME}}|cercar aquest títol]] en altres pàgines o bé <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cercar en els registres relacionats]</span>, però no teniu permisos per crear la pàgina.",
        "missing-revision": "La revisió núm. $1 de la pàgina anomenada «{{FULLPAGENAME}}» no existeix.\n\nNormalment això ocorre quan seguiu un enllaç d’historial desactualitzat que apunta a una pàgina que s’ha suprimit.\nPodeu trobar detalls en el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registre de supressions].",
        "userpage-userdoesnotexist": "Atenció: El compte d'usuari «<nowiki>$1</nowiki>» no està registrat. En principi no hauríeu de crear ni editar aquesta pàgina.",
        "userpage-userdoesnotexist-view": "El compte d'usuari \"$1\" no està registrat.",
        "blocked-notice-logextract": "En aquests moments aquest compte d'usuari es troba blocat.\nPer més detalls, la darrera entrada del registre es mostra a continuació:",
-       "clearyourcache": "'''Nota:''' Després de desar, possiblement necessiteu refrescar la memòria cau del vostre navegador per a veure'n els canvis.\n* '''Firefox / Safari:''' Premeu ''Shift'' mentre cliqueu el botó ''Actualitzar'', o pressioneu ''Ctrl+F5'' o ''Ctrl+R'' (''⌘+R'' a Mac)\n* '''Google Chrome:''' Premeu ''Ctrl+Shift+R'' (''⌘+Shift+R'' a Mac)\n* '''Internet Explorer:''' Premeu la tecla ''Ctrl'' mentre cliqueu a ''Actualitzar'' o pressioneu ''Ctrl+F5''\n* '''Opera:''' Netegeu la memòria cau ''Eines → Preferències''",
+       "clearyourcache": "<strong>Nota:</strong> Després de desar, possiblement necessitareu refrescar la memòria cau del vostre navegador per a veure'n els canvis.\n* <strong>Firefox / Safari:</strong> Premeu <em>Shift</em> i alhora cliqueu el botó <em>Actualitza</em>, o pressioneu <em>Ctrl+F5</em> o <em>Ctrl+R</em> (<em>⌘+R</em> en un Mac)\n* <strong>Google Chrome:</strong> Premeu <em>Ctrl+Shift+R</em> (<em>⌘+Shift+R</em> en un Mac)\n* <strong>Internet Explorer:</strong> Premeu <em>Ctrl</em> i alhora cliqueu a <em>Actualitza</em> o pressioneu <em>Ctrl+F5</em>\n* <strong>Opera:</strong> Aneu a <em>Menú → Preferències</em> (<em>Opera → Preferències</em> en un Mac) i llavors a <em>Privadesa i seguretat → Neteja dades de navegació → Imatges i fitxers en memòria cau</em>.",
        "usercssyoucanpreview": "'''Consell:''' Utilitzeu el botó \"{{int:showpreview}}\" per provar el vostre nou CSS abans de desar-lo.",
        "userjsyoucanpreview": "'''Consell:''' Utilitzeu el botó \"{{int:showpreview}}\" per provar el vostre nou JavaScript abans de desar-lo.",
        "usercsspreview": "'''Recordeu que esteu previsualitzant el vostre CSS d'usuari.'''\n'''Encara no s'ha desat!'''",
        "group-bot": "Bots",
        "group-sysop": "Administradors",
        "group-bureaucrat": "Buròcrates",
-       "group-suppress": "Supressors",
+       "group-suppress": "Supressors de Flow",
        "group-all": "(tots)",
        "group-user-member": "{{GENDER:$1|usuari|usuària}}",
        "group-autoconfirmed-member": "{{GENDER:$1|usuari autoconfirmat|usuària autoconfirmada}}",
        "group-bot-member": "{{GENDER:$1|bot}}",
        "group-sysop-member": "{{GENDER:$1|administrador|administradora}}",
        "group-bureaucrat-member": "{{GENDER:$1|buròcrata}}",
-       "group-suppress-member": "{{GENDER:$1|supressor|supressora}}",
+       "group-suppress-member": "{{GENDER:$1|supressor|supressora}} de Flow",
        "grouppage-user": "{{ns:project}}:Usuaris",
        "grouppage-autoconfirmed": "{{ns:project}}:Usuaris autoconfirmats",
        "grouppage-bot": "{{ns:project}}:Bots",
        "grouppage-sysop": "{{ns:project}}:Administradors",
        "grouppage-bureaucrat": "{{ns:project}}:Buròcrates",
-       "grouppage-suppress": "{{ns:project}}:Supress",
+       "grouppage-suppress": "{{ns:project}}:Supressors de Flow",
        "right-read": "Llegir pàgines",
        "right-edit": "Modificar pàgines",
        "right-createpage": "Crear pàgines (que no són de discussió)",
        "grant-editprotected": "Modifica pàgines protegides",
        "grant-highvolume": "Edició d'alt volum",
        "grant-oversight": "Amaga usuaris i suprimeix revisions",
+       "grant-protect": "Protecció i desprotecció de pàgines",
+       "grant-rollback": "Reversió de canvis en pàgines",
+       "grant-sendemail": "Enviament de correus a altres usuaris",
+       "grant-uploadeditmovefile": "Penjar, substituir i reanomenar fitxers",
        "grant-uploadfile": "Carrega fitxers nous",
        "grant-basic": "Permisos bàsics",
        "grant-viewdeleted": "Mostra fitxers eliminats i pàgines",
        "action-viewmyprivateinfo": "mostra la informació personal",
        "action-editmyprivateinfo": "edita la informació personal",
        "action-editcontentmodel": "editar el model de contingut d'una pàgina",
-       "action-managechangetags": "crear i suprimir etiquetes de la base de dades",
+       "action-managechangetags": "crear i (des)activar etiquetes",
        "action-applychangetags": "aplica les etiquetes juntament amb els canvis",
        "action-changetags": "afegeix i elimina etiquetes a les revisions i les entrades de registre individuals",
        "nchanges": "$1 {{PLURAL:$1|canvi|canvis}}",
        "upload-options": "Opcions de càrrega",
        "watchthisupload": "Vigila aquest fitxer",
        "filewasdeleted": "Prèviament es va carregar un fitxer d'aquest nom i després va ser esborrat. Hauríeu de verificar $1 abans de procedir a carregar-lo una altra vegada.",
+       "filename-thumb-name": "Aquest títol sembla que és d'una miniatura. No pengeu versions en miniatura en el mateix wiki. Si no és el cas, corregiu el nom del fitxer per a que sigui més descriptiu i que no tingui un prefix de miniatura.",
        "filename-bad-prefix": "El nom del fitxer que esteu penjant comença amb '''«$1»''', que és un nom no descriptiu que les càmeres digitals normalment assignen de forma automàtica. Trieu un de més descriptiu per al vostre fitxer.",
        "upload-proto-error": "El protocol és incorrecte",
        "upload-proto-error-text": "Per a les càrregues remotes cal que els URL comencin amb <code>http://</code> o <code>ftp://</code>.",
        "apisandbox-dynamic-parameters": "Paràmetres adicionals",
        "apisandbox-dynamic-parameters-add-label": "Afegeix un paràmetre:",
        "apisandbox-dynamic-parameters-add-placeholder": "Nom del paràmetre",
+       "apisandbox-dynamic-error-exists": "Ja existeix un paràmetre anomenat \"$1\".",
        "apisandbox-deprecated-parameters": "Paràmetres obsolets",
        "apisandbox-submit-invalid-fields-title": "Alguns camps no són vàlids",
        "apisandbox-results": "Resultats",
        "whatlinkshere-prev": "{{PLURAL:$1|anterior|anteriors $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|següent|següents $1}}",
        "whatlinkshere-links": "← enllaços",
-       "whatlinkshere-hideredirs": "Amaga les redireccions",
-       "whatlinkshere-hidetrans": "Amagar transclusions",
-       "whatlinkshere-hidelinks": "Amagar enllaços",
+       "whatlinkshere-hideredirs": "$1 redireccions",
+       "whatlinkshere-hidetrans": "$1 inclusions",
+       "whatlinkshere-hidelinks": "$1 enllaços",
        "whatlinkshere-hideimages": "$1 enllaços de fitxers",
        "whatlinkshere-filters": "Filtres",
        "whatlinkshere-submit": "Vés-hi",
        "lockedbyandtime": "(per $1 el $2 a les $3)",
        "move-page": "Reanomena $1",
        "move-page-legend": "Reanomena la pàgina",
-       "movepagetext": "Amb el formulari següent reanomenareu una pàgina, movent tot el seu historial al nou nom.\nEl títol anterior es convertirà en una pàgina de redirecció al nou títol.\nPodeu actualitzar automàticament les redireccions que apuntin al títol original.\nSi no ho feu, assegureu-vos de verificar les redireccions [[Special:DoubleRedirects|dobles]] o [[Special:BrokenRedirects|trencades]].\nSerà de la vostra responsabilitat verificar que els enllaços segueixin apuntant cap a on se suposa que ho han de fer.\n\nTingueu en compte que la pàgina '''no''' serà traslladada si ja existeix una pàgina amb el títol nou, tret que sigui una redirecció sense més historial.\nAixò significa que podeu reanomenar de nou una pàgina al seu títol original si cometeu un error, i que no podeu sobreescriure una pàgina existent.\n\n'''Atenció!'''\nAçò pot ser un canvi dràstic i inesperat en una pàgina que sigui popular; \nassegureu-vos d'entendre les conseqüències que comporta abans de seguir endavant.",
+       "movepagetext": "Amb el formulari següent reanomenareu una pàgina, movent tot el seu historial al nou nom.\nEl títol anterior es convertirà en una pàgina de redirecció al nou títol.\nPodeu actualitzar automàticament les redireccions que apuntin al títol original.\nSi no ho feu, assegureu-vos de verificar les redireccions [[Special:DoubleRedirects|dobles]] o [[Special:BrokenRedirects|trencades]].\nSerà de la vostra responsabilitat verificar que els enllaços segueixin apuntant cap a on se suposa que ho han de fer.\n\nTingueu en compte que la pàgina <strong>no</strong> serà traslladada si ja existeix una pàgina amb el títol nou, tret que sigui una redirecció sense més historial.\nAixò significa que podeu reanomenar de nou una pàgina al seu títol original si cometeu un error, i que no podeu sobreescriure una pàgina existent.\n\n<strong>Nota:</strong>\nAçò pot ser un canvi dràstic i inesperat en una pàgina que sigui popular; \nassegureu-vos d'entendre les conseqüències que comporta abans de seguir endavant.",
        "movepagetext-noredirectfixer": "Amb el formulari següent podeu reanomenar una pàgina movent tot el seu historial al nom nou.\nEl títol anterior es convertirà en una pàgina de redirecció al nou títol. \nAssegureu-vos de verificar les redireccions [[Special:DoubleRedirects|dobles]] o [[Special:BrokenRedirects|trencades]].\nÉs responsabilitat vostra assegurar que els enllaços continuen apuntant cap a on se suposa que han d'anar. \n\nTingueu en compte que la pàgina '''no''' serà traslladada si ja existeix una pàgina amb el títol nou, tret que sigui una redirecció i no tingui més historial. \nAixò significa que podeu reanomenar de nou una pàgina al seu títol original si cometeu un error, i que no podeu sobreescriure una pàgina existent.\n \n'''Atenció!''' \nAixò pot ser un canvi dràstic i inesperat per una pàgina popular; \nassegureu-vos que sabeu el que feu abans de continuar.",
        "movepagetalktext": "La pàgina de discussió associada també serà traslladada automàticament '''tret que''':\n* Ja existeixi una pàgina de discussió no buida amb el nou nom, o\n* Desactiveu l'opció de més avall.\n\nEn aquests casos, haureu de traslladar o fusionar la pàgina manualment si ho desitgeu.",
        "moveuserpage-warning": "'''Atenció:''' Esteu a punt de moure una pàgina d'usuari. Tingueu en compte que només la pàgina es desplaçarà i que el compte d'usuari ''no'' canviarà de nom.",
        "tooltip-pt-preferences": "{{GENDER:|Les vostres}} preferències",
        "tooltip-pt-watchlist": "La llista de pàgines de les quals vigileu els canvis.",
        "tooltip-pt-mycontris": "Llista de {{GENDER:|les vostres}} contribucions",
+       "tooltip-pt-anoncontribs": "Una llista de les modificacions fetes des d'aquesta adreça IP",
        "tooltip-pt-login": "Us animem a registrar-vos, però no és obligatori",
        "tooltip-pt-logout": "Finalitza la sessió d'usuari",
        "tooltip-pt-createaccount": "Us animem a què creeu un compte i inicieu sessió, encara que no és obligatori",
        "log-action-filter-protect-modify": "Modificació de la protecció",
        "log-action-filter-protect-unprotect": "Desprotecció",
        "log-action-filter-upload-upload": "Nova càrrega",
-       "log-action-filter-upload-overwrite": "Torna a carregar"
+       "log-action-filter-upload-overwrite": "Torna a carregar",
+       "authmanager-realname-label": "Nom real",
+       "authmanager-realname-help": "Nom real de l'usuari"
 }
index 4ae6c23..1e27b43 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|předchozí|předchozí $1|předchozích $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|následující|následující $1|následujících $1}}",
        "whatlinkshere-links": "← odkazy",
-       "whatlinkshere-hideredirs": "Skrýt přesměrování",
-       "whatlinkshere-hidetrans": "Skrýt vložení",
-       "whatlinkshere-hidelinks": "Skrýt odkazy",
-       "whatlinkshere-hideimages": "Skrýt vložení souboru",
+       "whatlinkshere-hideredirs": "$1 přesměrování",
+       "whatlinkshere-hidetrans": "$1 vložení",
+       "whatlinkshere-hidelinks": "$1 odkazy",
+       "whatlinkshere-hideimages": "$1 vložení souboru",
        "whatlinkshere-filters": "Filtry",
        "whatlinkshere-submit": "Přejít",
        "autoblockid": "Autoblok #$1",
index efe2990..0981b43 100644 (file)
        "suppressionlog": "Пытару журналĕ",
        "history-title": "\"$1\" улшăннисен историйĕ",
        "lineno": "$1-мĕш йĕрке:",
-       "editundo": "пăрахăçла",
+       "editundo": "унчченхи",
        "searchresults": "Шыранă результачĕсем",
        "textmatches": "Статьясенчи текст пĕрпеклĕхĕ",
        "prevn": "унчченхи {{PLURAL:$1|$1}}",
        "categories": "Категорисем",
        "categories-submit": "Кăтарт",
        "categoriespagetext": "Викинче çак категорисем пур.\n[[Special:UnusedCategories|Unused categories]] are not shown here.\nAlso see [[Special:WantedCategories|wanted categories]].",
-       "special-categories-sort-count": "шучĕ тăрăх йĕркеле",
-       "special-categories-sort-abc": "алфавит тăрăх йĕркеле",
        "deletedcontributions": "Тулашран тунă ӳсĕм",
        "linksearch-ns": "Ят хушши:",
        "linksearch-ok": "Шырамалли",
        "ipaddressorusername": "IP адрес е усă куракан ят:",
        "ipbreason": "Сăлтавĕ",
        "ipbother": "Урăх вăхăт:",
-       "ipboptions": "2 Ñ\81еÑ\85еÑ\82:2 hours,1 ÐºÑ\83н:1 day,3 ÐºÑ\83н:3 days,1 Ñ\8dÑ\80не:1 week,2 Ñ\8dÑ\80не:2 weeks,1 Ñ\83йÄ\83Ñ\85:1 month,3 Ñ\83йÄ\83Ñ\85:3 months,6 Ñ\83йÄ\83Ñ\85:6 months,1 Ã§Ñ\83л:1 year,Ñ\8fванлÄ\83Ñ\85а:infinite",
+       "ipboptions": "2 Ñ\81еÑ\85еÑ\82:2 hours,1 ÐºÑ\83н:1 day,3 ÐºÑ\83н:3 days,1 Ñ\8dÑ\80не:1 week,2 Ñ\8dÑ\80не:2 weeks,1 Ñ\83йÄ\83Ñ\85:1 month,3 Ñ\83йÄ\83Ñ\85:3 months,6 Ñ\83йÄ\83Ñ\85:6 months,1 Ã§Ñ\83л:1 year,Ñ\8fлана:infinite",
        "badipaddress": "IP-адрес формачĕ тĕрĕс мар, е ку ятлă хутшăнакан кунта çук.",
        "blockipsuccesssub": "Ĕçлеме чартăмăр",
        "blockipsuccesstext": "[[Special:Contributions/$1|«$1»]] ĕçлеме чарнă.\n<br />[[Special:BlockList|ĕçлеме чарнă IP-адрессен списокне]] пăх.",
        "version": "Верси",
        "redirect-submit": "Куç",
        "fileduplicatesearch": "Пĕр пек файлсен шыравĕ",
-       "fileduplicatesearch-legend": "Дубликатсен шыравĕ",
        "fileduplicatesearch-filename": "Файл ячĕ:",
        "fileduplicatesearch-submit": "Туп",
        "specialpages": "Ятарлă страницăсем",
index 7a43083..f8ec0d2 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|forrige|forrige $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|næste|næste $1}}",
        "whatlinkshere-links": "← henvisninger",
-       "whatlinkshere-hideredirs": "Skjul omdirigeringer",
-       "whatlinkshere-hidetrans": "Skjul inkluderinger",
-       "whatlinkshere-hidelinks": "Skjul henvisninger",
+       "whatlinkshere-hideredirs": "$1 omdirigeringer",
+       "whatlinkshere-hidetrans": "$1 inkluderinger",
+       "whatlinkshere-hidelinks": "$1 henvisninger",
        "whatlinkshere-hideimages": "$1 filhenvisninger",
        "whatlinkshere-filters": "Filtre",
        "autoblockid": "Autoblock #$1",
index 9ff372c..e882088 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|veror|veror $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|verni|verni $1}}",
        "whatlinkshere-links": "← gırey",
-       "whatlinkshere-hideredirs": "Hetenayışan bınımne",
-       "whatlinkshere-hidetrans": "Gırêyanê açarnayışan bınımne",
-       "whatlinkshere-hidelinks": "Gırêyan bınımne",
+       "whatlinkshere-hideredirs": "Hetenayışê $1",
+       "whatlinkshere-hidetrans": "Açarnayışê $1",
+       "whatlinkshere-hidelinks": "Greyê $1",
        "whatlinkshere-hideimages": "Gıreyê dosya $1",
        "whatlinkshere-filters": "Avrêci",
        "autoblockid": "Otomatik vındarnayış #$1",
index 269afc3..8aa0040 100644 (file)
        "changepassword-throttled": "तमले अलै भौत फेर प्रवेशका निम्ति प्रयास गरया छौ।\nकृपया $1 थोक्कै जागी मात्र प्रयास गर।",
        "botpasswords-label-grants-column": "प्रदान भयो",
        "botpasswords-created-title": "बोट को पासवर्ड बन्यो",
+       "botpasswords-updated-title": "बोट को पासवर्ड अपडेट भयो",
        "botpasswords-deleted-title": "बोट को पासवर्ड मेटियो",
        "resetpass_forbidden": "पासवर्ड परिवर्तन गर्न नाइँमिल्लो",
        "resetpass_forbidden-reason": "पासवर्ड परिवर्तन गद्दु नाइँमिल्लो:$1",
        "passwordreset-emailtitle": "{{SITENAME}}मा खाता विवरण",
        "passwordreset-emailelement": "प्रयोगकर्ताको नाम: \n$1\n\nअस्थाई पासवर्ड: \n$2",
        "passwordreset-emailsentemail": "पासवर्ड परिवर्तनका लागि इमेल पठाइया छ।",
-       "changeemail": "इमेल ठेगाना बदेल",
+       "changeemail": "इमेल ठेगाना बदेल वा हटा",
        "changeemail-header": "आफ्नो इमेल ठेगाना परिवर्तन गद्द यो फारम भर । यैलाई पुष्टि गद्द तमीले आफ्नो पासवर्ड हाल्नु पडन्छ।",
        "changeemail-oldemail": "अईलको इमेल-ठेगाना:",
        "changeemail-newemail": "नयाँ इमेल-ठेगाना:",
        "minoredit": "यो नानो सम्पादन हो",
        "watchthis": "यै पानाको ध्यान राख",
        "savearticle": "सङ्ग्रह गर",
+       "publishpage": "प्रकाशित पृष्ठ",
        "preview": "पूर्वावलोकन",
        "showpreview": "पूर्वालोकन धेकाउन्या",
        "showdiff": "परिवर्तन धेकाउन्या",
        "converter-manual-rule-error": "म्यानुअल भाषा अनुवाद सिध्दान्तमी समस्या धेखियो",
        "cantcreateaccounttitle": "खाता बनाउन सकिएन",
        "viewpagelogs": "यै पानाका लगहरू हेर",
+       "nohistory": "ये पृष्ठका लागी कोइ सम्पादन इतिहास छैन।",
        "currentrev": "अहिलको पुनरावलोकन",
        "currentrev-asof": "$1को रुपमी अहिलको पुनरावलोकनहरू",
        "revisionasof": "$1 जस्तै गरी पुनरावलोकन",
        "prefs-rc": "नौला परिवर्तनहरू",
        "prefs-watchlist": "मेरो ध्यान सूची",
        "prefs-editwatchlist": "अवलोकनसूची सम्पादन",
+       "prefs-editwatchlist-raw": "कच्चा अवलोकनसूची सम्पादन गद्दा",
        "prefs-watchlist-days": "ध्यान सूचीमी धेकाउने दिनहरू:",
        "prefs-watchlist-edits-max": "सबै है ज्यादा संख्या : १०००",
        "prefs-watchlist-token": "अवलोकन सूची टोकन:",
        "columns": "स्तम्भहरू :",
        "searchresultshead": "खोज",
        "stub-threshold": "<a href=\"#\" class=\"stub\">ठूटो</a> को लागि थ्रेसहोल्ड स्वरूपण (बाइट):",
+       "stub-threshold-sample-link": "उदाहरण",
        "stub-threshold-disabled": "निष्क्रिय",
        "recentchangesdays": "हालको परिवर्तनमी धेकाउने दिनहरू:",
        "recentchangesdays-max": "अधिकतम $1 {{PLURAL:$1|दिन|दिन}}",
        "timezoneregion-australia": "अष्ट्रेलिया",
        "timezoneregion-indian": "हिन्द महासागर",
        "prefs-files": "फाइलहरू",
+       "youremail": "ईमेल",
+       "yourrealname": "वास्तविक नाम:",
+       "yourlanguage": "भाषा",
+       "yournick": "नयाँ हस्ताक्षर:",
        "prefs-help-signature": "कुरडी पानाका टिप्पणीहरू \"<nowiki>~~~~</nowiki>\" द्वारा दस्तखत गरिनुपडन्छ ,त्यो पछि तमरो दस्तखत र समयरेखामी रुपान्तरित हुनेछ ।",
        "badsiglength": "तमरो दस्तखत मैथै लामो छ।\nयो $1 {{PLURAL:$1|अक्षर|अक्षरहरू}} भन्दा लामो हुनु हुँदैन ।",
+       "email": "ईमेल",
        "prefs-help-realname": "वास्तविक नाम ऐच्छिक हो ।\nतमीले खुलायौ भण्या तमरो कामको श्रेय दिनको लेखा यैको प्रयोग गरिन्या छ ।",
+       "prefs-editor": "सम्पादक",
+       "prefs-preview": "पूर्वावलोकन",
+       "prefs-tokenwatchlist": "टोकन",
+       "prefs-diffs": "फरक",
        "prefs-help-prefershttps": "यो रोजाई तमरो अर्को  लग इन बठे लागु हुन्याछ ।",
+       "userrights-reason": "कारण:",
        "userrights-unchangeable-col": "तमीले परिवर्तन गद्द नसक्ने समूहहरू",
        "userrights-conflict": "प्रयोगकर्ताको अधिकार परिवर्तनमी मतभेद भयो ! कृपया तमरो परिवर्तन पुनरावलोकन तथा पुष्टि गर ।",
        "userrights-removed-self": "तमीले सफलतापूर्वक आफ्नो अधिकारहरूलाई मेटायौ । त्यै कारण तमी अब यो पानो हेद्द नाइसक्दा ।",
+       "group": "समूह:",
        "group-user": "प्रयोगकर्ताहरू",
        "group-autoconfirmed": "स्वत स्थापित प्रयोगकर्ताहरू",
+       "group-bot": "बोटहरू",
+       "group-sysop": "प्रवन्धकहरू",
        "right-move-subpages": "तिनीहरूको उपपाना सहित पानाको नाम बदल्ने",
        "right-move-rootuserpages": "मूल(root) प्रयोगकर्ताको पानाहरू साद्या",
        "right-movefile": "फाइलहरूको नाम बदल्न्या",
index 2500688..ee035ec 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|προηγούμενη|προηγούμενες $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|επόμενη|επόμενες $1}}",
        "whatlinkshere-links": "← σύνδεσμοι",
-       "whatlinkshere-hideredirs": "Απόκρυψη ανακατευθύνσεων",
-       "whatlinkshere-hidetrans": "Απόκρυψη ενσωματώσεων",
-       "whatlinkshere-hidelinks": "Απόκρυψη συνδέσμων",
+       "whatlinkshere-hideredirs": "$1 ανακατευθύνσεων",
+       "whatlinkshere-hidetrans": "$1 ενσωματώσεων",
+       "whatlinkshere-hidelinks": "$1 συνδέσμων",
        "whatlinkshere-hideimages": "$1 σύνδεσμοι αρχείων",
        "whatlinkshere-filters": "Φίλτρα",
        "whatlinkshere-submit": "Μετάβαση",
index 8b9fefe..3000a54 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|previous|previous $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|next|next $1}}",
        "whatlinkshere-links": "← links",
-       "whatlinkshere-hideredirs": "Hide redirects",
-       "whatlinkshere-hidetrans": "Hide transclusions",
-       "whatlinkshere-hidelinks": "Hide links",
-       "whatlinkshere-hideimages": "Hide file links",
+       "whatlinkshere-hideredirs": "$1 redirects",
+       "whatlinkshere-hidetrans": "$1 transclusions",
+       "whatlinkshere-hidelinks": "$1 links",
+       "whatlinkshere-hideimages": "$1 file links",
        "whatlinkshere-filters": "Filters",
        "whatlinkshere-submit": "Go",
        "autoblockid": "Autoblock #$1",
index 8eb1341..0ff07ea 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|antaŭa|antaŭaj $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|posta|postaj $1}}",
        "whatlinkshere-links": "← ligiloj",
-       "whatlinkshere-hideredirs": "Kaŝi alidirektilojn",
-       "whatlinkshere-hidetrans": "Kaŝi transinkluzivaĵojn",
-       "whatlinkshere-hidelinks": "Kaŝi ligilojn",
-       "whatlinkshere-hideimages": "Malvidigi ligojn al dosiero",
+       "whatlinkshere-hideredirs": "$1 alidirektilojn",
+       "whatlinkshere-hidetrans": "$1 transinkluzivaĵojn",
+       "whatlinkshere-hidelinks": "$1 ligilojn",
+       "whatlinkshere-hideimages": "$1 ligiloj al bildo",
        "whatlinkshere-filters": "Filtriloj",
        "whatlinkshere-submit": "Ek",
        "autoblockid": "Aŭtomata forbaro #$1",
        "mw-widgets-titleinput-description-new-page": "paĝo ankoraŭ ne ekzistas",
        "mw-widgets-titleinput-description-redirect": "alidirekti al $1",
        "api-error-blacklisted": "Bonvolu elekti alian, priskriban titolon.",
+       "sessionmanager-tie": "Kombini diversajn tipojn de ensaluta peto ne estas permisita: $1.",
        "sessionprovider-generic": "$1 seancoj",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "kuketaj seancoj",
        "randomrootpage": "Hazarda radika paĝo",
+       "log-action-filter-block": "Tipo de forbaro:",
+       "log-action-filter-contentmodel": "Tipo de enhavomodela ŝanĝo:",
+       "log-action-filter-delete": "Tipo de forviŝigado:",
+       "log-action-filter-import": "Tipo de importado:",
+       "log-action-filter-move": "Tipo de alinomado:",
+       "log-action-filter-newusers": "Tipo de konta kreado:",
+       "log-action-filter-patrol": "Tipo de patrolado:",
+       "log-action-filter-protect": "Tipo de protektad:",
+       "log-action-filter-rights": "Tipo de rajta ŝanĝo",
+       "log-action-filter-suppress": "Tipo de forigado",
+       "log-action-filter-upload": "Tipo de alŝutado:",
        "log-action-filter-all": "Ĉia",
        "log-action-filter-block-block": "Forbari",
+       "log-action-filter-block-reblock": "Forbari ŝanĝon",
+       "log-action-filter-block-unblock": "Malforbari",
+       "log-action-filter-delete-delete": "Forviŝigado de paĝo",
+       "log-action-filter-delete-restore": "Malforviŝigado de paĝo",
+       "log-action-filter-delete-event": "Forviŝigado de protokolo",
+       "log-action-filter-delete-revision": "Forviŝigado de rivizio",
+       "log-action-filter-import-interwiki": "Importado de Transwiki",
        "log-action-filter-protect-unprotect": "Malprotektado",
        "log-action-filter-upload-upload": "Novalŝuta",
        "log-action-filter-upload-overwrite": "Realŝuta"
index 649a83a..eaf8f81 100644 (file)
        "accmailtext": "Se ha enviado a $2 una contraseña generada aleatoriamente para [[User talk:$1|$1]]. Una vez iniciada la sesión, se puede cambiar en la página [[Special:ChangePassword|destinada para ello]].",
        "newarticle": "(Nuevo)",
        "newarticletext": "Has seguido un enlace a una página que aún no existe.\nPara crear esta página, escribe en el cuadro que aparece a continuación. Para más información, consulta la [$1 página de ayuda].\nSi llegaste aquí por error, vuelve a la página anterior.",
-       "anontalkpagetext": "---- ''Esta es la página de discusión de un usuario anónimo que aún no ha creado una cuenta, o no la usa. Por lo tanto, tenemos que usar su dirección IP para identificarlo. Puede que varios usuarios compartan una misma dirección IP. Si eres un usuario anónimo y crees que se han dirigido a ti con comentarios improcedentes, por favor [[Special:CreateAccount|crea una cuenta]] o, si ya la tienes, [[Special:UserLogin|identifícate]] para evitar confusiones futuras con otros usuarios anónimos.''",
+       "anontalkpagetext": "----\n<em>Esta es la página de discusión de un usuario anónimo que aún no ha creado una cuenta, o no la usa.</em>\nPor lo tanto, tenemos que usar su dirección IP para identificarlo.\nPuede que varios usuarios compartan una misma dirección IP.\nSi eres un usuario anónimo y crees que se han dirigido a ti con comentarios improcedentes, [[Special:CreateAccount|crea una cuenta]] o [[Special:UserLogin|inicia sessión]] para evitar confusiones futuras con otros usuarios anónimos.",
        "noarticletext": "En este momento no hay texto en esta página.\nPuedes [[Special:Search/{{PAGENAME}}|buscar el título de esta página]] en otras páginas,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar en los registros relacionados],\no [{{fullurl:{{FULLPAGENAME}}|action=edit}} crear esta página]</span>.",
        "noarticletext-nopermission": "Actualmente no hay texto en esta página.\nPuedes [[Special:Search/{{PAGENAME}}|buscar este título de página]] en otras páginas, o <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar en los registros relacionados]</span>, pero no tienes permiso para crear esta página.",
        "missing-revision": "La revisión n.º $1 de la página «{{FULLPAGENAME}}» no existe.\n\nEsto suele ocurrir cuando se sigue un enlace de historial obsoleto que apunta a una página ya borrada.\nPuedes encontrar detalles en el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de borrados].",
        "group-bot": "Bots",
        "group-sysop": "Administradores",
        "group-bureaucrat": "Burócratas",
-       "group-suppress": "Supresores",
+       "group-suppress": "Supresores de Flow",
        "group-all": "(todos)",
        "group-user-member": "{{GENDER:$1|usuario|usuaria}}",
        "group-autoconfirmed-member": "{{GENDER:$1|autoconfirmado|autoconfirmada}}",
        "group-bot-member": "{{GENDER:$1|bot}}",
        "group-sysop-member": "{{GENDER:$1|administrador|administradora}}",
        "group-bureaucrat-member": "{{GENDER:$1|burócrata}}",
-       "group-suppress-member": "{{GENDER:$1|supresor|supresora}}",
+       "group-suppress-member": "{{GENDER:$1|supresor|supresora}} de Flow",
        "grouppage-user": "{{ns:project}}:Usuarios",
        "grouppage-autoconfirmed": "{{ns:project}}:Autoconfirmados",
        "grouppage-bot": "{{ns:project}}:Bots",
        "grouppage-sysop": "{{ns:project}}:Administradores",
        "grouppage-bureaucrat": "{{ns:project}}:Burócratas",
-       "grouppage-suppress": "{{ns:project}}:Supresores",
+       "grouppage-suppress": "{{ns:project}}:Supresores de Flow",
        "right-read": "Leer páginas",
        "right-edit": "Editar páginas",
        "right-createpage": "Crear páginas que no sean de discusión",
        "whatlinkshere-prev": "{{PLURAL:$1|previa|previas $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|siguiente|siguientes $1}}",
        "whatlinkshere-links": "← enlaces",
-       "whatlinkshere-hideredirs": "Ocultar redirecciones",
-       "whatlinkshere-hidetrans": "Ocultar transclusiones",
-       "whatlinkshere-hidelinks": "Ocultar enlaces",
-       "whatlinkshere-hideimages": "Ocultar los vínculos de archivo",
+       "whatlinkshere-hideredirs": "$1 redirecciones",
+       "whatlinkshere-hidetrans": "Ocultar transclusions",
+       "whatlinkshere-hidelinks": "$1 enlaces",
+       "whatlinkshere-hideimages": "$1 enlaces a archivos",
        "whatlinkshere-filters": "Filtros",
        "whatlinkshere-submit": "Ir",
        "autoblockid": "Bloqueo automático #$1",
        "log-action-filter-suppress-reblock": "Usuario supresión de rebloqueo",
        "log-action-filter-upload-upload": "Subida nueva",
        "log-action-filter-upload-overwrite": "Volver a subir",
+       "authmanager-create-disabled": "desactivada la creación de cuentas",
+       "authmanager-create-no-primary": "Las credenciales suministradas no pueden ser utilizados para la creación de la cuenta.",
        "authmanager-authplugin-setpass-failed-message": "El complemento de autenticación denegó el cambio de contraseña.",
        "authmanager-authplugin-create-fail": "El complemento de autenticación denegó la creación de la cuenta.",
+       "authmanager-authplugin-setpass-denied": "La autentificación de plugin no permite cambio de contraseñas.",
        "authmanager-userdoesnotexist": "El usuario «$1» no está registrado.",
        "authmanager-password-help": "Contraseña para autenticación.",
+       "authmanager-retype-help": "La contraseña de nuevo para confirmar.",
        "authmanager-email-label": "Correo electrónico",
        "authmanager-email-help": "Dirección de correo electrónico",
        "authmanager-realname-label": "Nombre real",
        "authmanager-provider-password": "Autenticación basada en contraseña",
        "authprovider-confirmlink-success-line": "$1: vinculado exitosamente.",
        "authprovider-resetpass-skip-label": "Omitir",
-       "authform-nosession-login": "La autenticación fue exitosa, pero tu navegador no puede \"recordar\" haber registrado.",
+       "authform-nosession-login": "La autenticación fue exitosa, pero tu navegador no puede \"recordar\" haber iniciado sesión.\n\n$1",
        "specialpage-securitylevel-not-allowed": "Lo siento, no tienes permitido usar esta página, porque tu identidad no pudo verificarse.",
        "authpage-cannot-login-continue": "No se puede continuar con el inicio de sesión. Lo más probable es que tu sesión haya expirado.",
+       "authpage-cannot-link-continue": "No se puede continuar con  la vinculación de cuentas. Lo más probable es que tu sesión haya expirado.",
        "changecredentials": "Cambiar las credenciales",
        "changecredentials-submit": "Cambiar",
        "changecredentials-submit-cancel": "Cancelar",
index bb7c10d..c2353dc 100644 (file)
        "whatlinkshere-links": "← loturak",
        "whatlinkshere-hideredirs": "$1 birzuzenketak",
        "whatlinkshere-hidetrans": "$1 transklusioak",
-       "whatlinkshere-hidelinks": "Ezkutatu loturak",
+       "whatlinkshere-hidelinks": "$1 loturak",
        "whatlinkshere-hideimages": "$1 irudi loturak",
        "whatlinkshere-filters": "Iragazleak",
        "whatlinkshere-submit": "Joan",
index 99ac9c4..09b023e 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|قبلی|$1 مورد قبلی}}",
        "whatlinkshere-next": "{{PLURAL:$1|بعدی|$1 مورد بعدی}}",
        "whatlinkshere-links": "→ پیوندها",
-       "whatlinkshere-hideredirs": "پنهان‌کردن تغییرمسیرها",
-       "whatlinkshere-hidetrans": "پنهان‌کردن تراگنجانش‌ها",
-       "whatlinkshere-hidelinks": "پنهان‌کردن پیوندها",
+       "whatlinkshere-hideredirs": "$1 تغییرمسیر",
+       "whatlinkshere-hidetrans": "$1 تراگنجانش‌ها",
+       "whatlinkshere-hidelinks": "$1 پیوند",
        "whatlinkshere-hideimages": "$1 پیوندهای پرونده",
        "whatlinkshere-filters": "پالایه‌ها",
        "whatlinkshere-submit": "برو",
index 7c6a371..0e4e644 100644 (file)
        "whatlinkshere-prev": "← {{PLURAL:$1|edellinen sivu|$1 edellistä sivua}}",
        "whatlinkshere-next": "{{PLURAL:$1|seuraava sivu|$1 seuraavaa sivua}} →",
        "whatlinkshere-links": "viittaukset",
-       "whatlinkshere-hideredirs": "Piilota ohjaukset",
-       "whatlinkshere-hidetrans": "Piilota sisällytykset",
-       "whatlinkshere-hidelinks": "Piilota linkit",
-       "whatlinkshere-hideimages": "Piilota tiedostolinkit",
+       "whatlinkshere-hideredirs": "$1 ohjaukset",
+       "whatlinkshere-hidetrans": "$1 sisällytykset",
+       "whatlinkshere-hidelinks": "$1 linkit",
+       "whatlinkshere-hideimages": "$1 tiedostolinkit",
        "whatlinkshere-filters": "Suotimet",
        "whatlinkshere-submit": "Siirry",
        "autoblockid": "Automaattinen esto #$1",
index 5b0317c..47405d5 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|précédente|$1 précédentes}}",
        "whatlinkshere-next": "{{PLURAL:$1|suivante|$1 suivantes}}",
        "whatlinkshere-links": "← liens",
-       "whatlinkshere-hideredirs": "Masquer les redirections",
-       "whatlinkshere-hidetrans": "Masquer les inclusions",
-       "whatlinkshere-hidelinks": "Masquer les liens",
-       "whatlinkshere-hideimages": "Masquer les liens vers le fichier",
+       "whatlinkshere-hideredirs": "$1 les redirections",
+       "whatlinkshere-hidetrans": "$1 les inclusions",
+       "whatlinkshere-hidelinks": "$1 les liens",
+       "whatlinkshere-hideimages": "$1 les liens vers le fichier",
        "whatlinkshere-filters": "Filtres",
        "whatlinkshere-submit": "Lister",
        "autoblockid": "Blocage automatique #$1",
index 43ccccb..c09db95 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|anterior|$1 anteriores}}",
        "whatlinkshere-next": "{{PLURAL:$1|seguinte|$1 seguintes}}",
        "whatlinkshere-links": "← ligazóns",
-       "whatlinkshere-hideredirs": "Ocultar as redireccións",
-       "whatlinkshere-hidetrans": "Ocultar as inclusións",
-       "whatlinkshere-hidelinks": "Ocultar as ligazóns",
-       "whatlinkshere-hideimages": "Ocultar as ligazóns ao ficheiro",
+       "whatlinkshere-hideredirs": "$1 as redireccións",
+       "whatlinkshere-hidetrans": "$1 as inclusións",
+       "whatlinkshere-hidelinks": "$1 as ligazóns",
+       "whatlinkshere-hideimages": "$1 as ligazóns ao ficheiro",
        "whatlinkshere-filters": "Filtros",
        "whatlinkshere-submit": "Ir",
        "autoblockid": "Bloqueo automático nº$1",
index f63874f..779e8cf 100644 (file)
@@ -74,7 +74,7 @@
        "tog-watchlisthideanons": "הסתרת עריכות של משתמשים אנונימיים ברשימת המעקב",
        "tog-watchlisthidepatrolled": "הסתרת עריכות בדוקות ברשימת המעקב",
        "tog-watchlisthidecategorization": "הסתרת שינויים בקטגוריות של דפים",
-       "tog-ccmeonemails": "×\9cש×\9c×\95×\97 ×\90×\9c×\99×\99 ×\94עתק×\99×\9d ×©×\9c ×\94×\95×\93×¢×\95ת ×\93×\95×\90\"×\9c ×©×©×\9c×\97ת×\99 למשתמשים אחרים",
+       "tog-ccmeonemails": "×\9cש×\9c×\95×\97 ×\90×\9c×\99×\99 ×\94עתק×\99×\9d ×©×\9c ×\94×\95×\93×¢×\95ת ×\93×\95×\90\"×\9c ×©×\90× ×\99 {{GENDER:|ש×\95×\9c×\97|ש×\95×\9c×\97ת}} למשתמשים אחרים",
        "tog-diffonly": "ביטול הצגת תוכן הדף מתחת להשוואת הגרסאות",
        "tog-showhiddencats": "הצגת קטגוריות מוסתרות",
        "tog-norollbackdiff": "לא להציג את ההבדלים בין הגרסאות לאחר ביצוע שחזור",
        "noname": "לא הכנסת שם משתמש תקין",
        "loginsuccesstitle": "נכנסת לחשבון",
        "loginsuccess": "'''נכנסת ל{{grammar:תחילית|{{SITENAME}}}} בשם \"$1\".'''",
-       "nosuchuser": "אין משתמש בשם \"$1\".\nשימו לב ששמות משתמשים הם תלויים־רישיות.\nאנא בִדקו את האיות של שם המשתמש, או [[Special:CreateAccount|צרו חשבון חדש]].",
-       "nosuchusershort": "×\90×\99×\9f ×\9eשת×\9eש ×\91ש×\9d \"$1\".\n×\90× ×\90 ×\95×\93×\90×\95 שהאיות נכון.",
+       "nosuchuser": "אין משתמש בשם \"$1\".\nשימו לב ששמות משתמשים הם תלויי־רישיות.\nאנא בִדקו את האיות של שם המשתמש, או [[Special:CreateAccount|צרו חשבון חדש]].",
+       "nosuchusershort": "×\90×\99×\9f ×\9eשת×\9eש ×\91ש×\9d \"$1\".\n× ×\90 ×\9c×\95×\95×\93×\90 שהאיות נכון.",
        "nouserspecified": "יש לציין שם משתמש.",
        "login-userblocked": "משתמש זה חסום. אינכם מורשים להיכנס לחשבון.",
        "wrongpassword": "הסיסמה שהקלדתם שגויה.\nאנא נסו שוב.",
        "session_fail_preview_html": "מצטערים! לא ניתן לבצע את עריכתם עקב אובדן מידע הכניסה.\n\n<em>כיוון שב{{grammar:תחילית|{{SITENAME}}}} אפשרות השימוש ב־HTML גולמי מופעלת, התצוגה המקדימה מוסתרת כדי למנוע התקפות JavaScript.</em>\n\n<strong>אם זהו ניסיון עריכה לגיטימי, אנא נסו שוב.</strong>\nאם זה עדיין לא עובד, נסו [[Special:UserLogout|לצאת מהחשבון]] ולהיכנס אליו שנית, וודאו שהדפדפן שלכם מאפשר קבלת עוגיות מאתר זה.",
        "token_suffix_mismatch": "'''עריכתך נדחתה כיוון שהדפדפן שלך מחק את תווי הפיסוק באסימון העריכה.'''\nהעריכה נדחתה כדי למנוע בעיות כאלה בטקסט של הדף.\nלעתים התקלה מתרחשת עקב שימוש בשירות פרוקסי אנונימי פגום.",
        "edit_form_incomplete": "'''כמה חלקים מטופס העריכה לא הגיעו לשרת; בדקו היטב שעריכותיכם לא נפגעו ונסו שוב.'''",
-       "editing": "עריכת הדף $1",
+       "editing": "עריכת הדף \"$1\"",
        "creating": "יצירת הדף $1",
        "editingsection": "עריכת הדף $1 (פסקה)",
        "editingcomment": "עריכת הדף $1 (פסקה חדשה)",
        "userrights": "ניהול הרשאות משתמש",
        "userrights-lookup-user": "ניהול קבוצות משתמש",
        "userrights-user-editname": "שם משתמש:",
-       "editusergroup": "ער×\99×\9bת ×§×\91×\95צ×\95ת {{GENDER:$1|×\9eשת×\9eש×\99×\9d}}",
+       "editusergroup": "ער×\99×\9bת ×\94ק×\91×\95צ×\95ת ×©×\9c ×\94{{GENDER:$1|×\9eשת×\9eש|×\9eשת×\9eשת}}",
        "editinguser": "שינוי ההרשאות של {{GENDER:$1|המשתמש|המשתמשת}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "עריכת קבוצות משתמש",
-       "saveusergroups": "ש×\9e×\99רת ×§×\91×\95צ×\95ת {{GENDER:$1|×\9eשת×\9eש}}",
+       "saveusergroups": "ש×\9e×\99רת ×\94ק×\91×\95צ×\95ת ×©×\9c ×\94{{GENDER:$1|×\9eשת×\9eש|×\9eשת×\9eשת}}",
        "userrights-groupsmember": "{{GENDER:$2|חבר|חברה}} ב{{PLURAL:$1|קבוצה|קבוצות}}:",
        "userrights-groupsmember-auto": "{{GENDER:$2|חבר|חברה}} אוטומטית ב{{PLURAL:$1|קבוצה|קבוצות}}:",
-       "userrights-groups-help": "×\91×\90פשר×\95ת×\9b×\9d ×\9cשנ×\95ת ×\90ת ×\94ק×\91×\95צ×\95ת ×©×\9eשת×\9eש ×\96×\94 ×\97×\91ר ×\91×\94×\9f:\n* ×ª×\99×\91×\94 ×\9eס×\95×\9eנת ×¤×\99ר×\95ש×\94 ×©×\94×\9eשת×\9eש ×\97×\91ר ×\91ק×\91×\95צ×\94.\n* ×ª×\99×\91×\94 ×\91×\9cת×\99 ×\9eס×\95×\9eנת ×¤×\99ר×\95ש×\94 ×©×\94×\9eשת×\9eש ×\90×\99× ×\95 ×\97×\91ר ×\91ק×\91×\95צ×\94.\n* ×¡×\99×\9e×\95×\9f * ×¤×\99ר×\95ש×\95 ×©×\9c×\90 ×ª×\95×\9b×\9c×\95 ×\9c×\94ס×\99ר ×\9eשת×\9eש ×\9e×\94ק×\91×\95צ×\94 ×\9eר×\92×¢ ×©×\94×\95ספת×\9d ×\90×\95ת×\95 אליה, או להפך.",
+       "userrights-groups-help": "×\91×\90פשר×\95ת×\9a ×\9cשנ×\95ת ×\90ת ×\94ק×\91×\95צ×\95ת ×©{{GENDER:$1|×\9eשת×\9eש ×\96×\94 ×\97×\91ר|×\9eשת×\9eשת ×\96×\95 ×\97×\91ר×\94}} ×\91×\94×\9f:\n* ×ª×\99×\91×\94 ×\9eס×\95×\9eנת ×¤×\99ר×\95ש×\94 ×©×\94{{GENDER:$1|×\9eשת×\9eש ×\9b×\91ר ×\97×\91ר|×\9eשת×\9eשת ×\9b×\91ר ×\97×\91ר×\94}} ×\91ק×\91×\95צ×\94.\n* ×ª×\99×\91×\94 ×\91×\9cת×\99 ×\9eס×\95×\9eנת ×¤×\99ר×\95ש×\94 ×©×\94{{GENDER:$1|×\9eשת×\9eש ×\90×\99× ×\95 ×\97×\91ר|×\9eשת×\9eשת ×\90×\99× ×\94 ×\97×\91ר×\94}} ×\91ק×\91×\95צ×\94.\n* ×¡×\99×\9e×\95×\9f * ×¤×\99ר×\95ש×\95 ×©×\9c×\90 ×\99×\94×\99×\94 ×\91×\90פשר×\95ת×\9a ×\9c×\94ס×\99ר ×\90ת ×\94{{GENDER:$1|×\9eשת×\9eש|×\9eשת×\9eשת}} ×\9e×\94ק×\91×\95צ×\94 ×\9e×\94ר×\92×¢ ×©×\94×\95ספת {{GENDER:$1|×\90×\95ת×\95\90×\95ת×\94}} אליה, או להפך.",
        "userrights-reason": "סיבה:",
        "userrights-no-interwiki": "אין לך הרשאה לערוך הרשאות משתמש באתרים אחרים.",
        "userrights-nodatabase": "בסיס הנתונים $1 אינו קיים או אינו מקומי.",
        "userrights-nologin": "עליכם [[Special:UserLogin|להיכנס לחשבון]] עם הרשאות מתאימות כדי לשנות הרשאות של משתמשים.",
        "userrights-notallowed": "אין לך הרשאה להוסיף או להסיר הרשאות של משתמשים.",
-       "userrights-changeable-col": "קבוצות שבאפשרותכם לשנות",
-       "userrights-unchangeable-col": "קבוצות שאין באפשרותכם לשנות",
+       "userrights-changeable-col": "{{PLURAL:$1|קבוצה|קבוצות}} שבאפשרותך לשנות",
+       "userrights-unchangeable-col": "{{PLURAL:$1|קבוצה|קבוצות}} שאין באפשרותך לשנות",
        "userrights-conflict": "התנגשות בין שינויי הרשאות משתמש! אנא בִּדקו את השינויים שלכם ואשרו אותם.",
        "userrights-removed-self": "הסרת את הרשאות המשתמש של עצמך. לכן אין לך כעת אפשרות לגשת לדף זה.",
        "group": "קבוצה:",
        "newuserlogpage": "יומן רישום משתמשים",
        "newuserlogpagetext": "זהו יומן המכיל הרשמות של משתמשים.",
        "rightslog": "יומן הרשאות",
-       "rightslogtext": "×\96×\94×\95 ×\99×\95×\9e×\9f ×\94ש×\99× ×\95×\99×\99×\9d ×\91תפק×\99×\93×\99 המשתמשים.",
+       "rightslogtext": "×\96×\94×\95 ×\99×\95×\9e×\9f ×\94ש×\99× ×\95×\99×\99×\9d ×\91×\94רש×\90×\95ת המשתמשים.",
        "action-read": "לקרוא דף זה",
        "action-edit": "לערוך דף זה",
        "action-createpage": "ליצור דפים",
        "protectedpages-performer": "הוגן על־ידי",
        "protectedpages-params": "רמת ההגנה",
        "protectedpages-reason": "סיבה",
-       "protectedpages-submit": "הצגת דפים",
+       "protectedpages-submit": "×\94צ×\92ת ×\94×\93פ×\99×\9d",
        "protectedpages-unknown-timestamp": "לא ידוע",
        "protectedpages-unknown-performer": "משתמש לא ידוע",
        "protectedtitles": "כותרות מוגנות",
        "protectedtitles-summary": "בדף זה רשומות הכותרות שמוגנות כעת מפני יצירה. לרשימת הדפים הקיימים שמוגנים, ראו [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "אין כרגע כותרות מוגנות עם הפרמטרים האלה.",
-       "protectedtitles-submit": "×\94צ×\92ת ×\9b×\95תר×\95ת",
+       "protectedtitles-submit": "×\94צ×\92ת ×\94×\93פ×\99×\9d",
        "listusers": "רשימת משתמשים",
        "listusers-editsonly": "הצגת משתמשים עם עריכות בלבד",
        "listusers-creationsort": "מיון לפי תאריך היצירה",
        "whatlinkshere-prev": "{{PLURAL:$1|הקודם|$1 הקודמים}}",
        "whatlinkshere-next": "{{PLURAL:$1|הבא|$1 הבאים}}",
        "whatlinkshere-links": "→ קישורים",
-       "whatlinkshere-hideredirs": "הסתרת הפניות",
-       "whatlinkshere-hidetrans": "הסתרת הכללות",
-       "whatlinkshere-hidelinks": "הסתרת קישורים",
-       "whatlinkshere-hideimages": "הסתרת קישורי קבצים",
+       "whatlinkshere-hideredirs": "$1 הפניות",
+       "whatlinkshere-hidetrans": "$1 הכללות",
+       "whatlinkshere-hidelinks": "$1 קישורים",
+       "whatlinkshere-hideimages": "$1 קישורים לקובץ",
        "whatlinkshere-filters": "מסננים",
        "whatlinkshere-submit": "הצגה",
        "autoblockid": "חסימה אוטומטית #$1",
        "ipblocklist-legend": "מציאת משתמש חסום",
        "blocklist-userblocks": "הסתרת חסימת חשבונות",
        "blocklist-tempblocks": "הסתרת חסימות זמניות",
-       "blocklist-addressblocks": "הסתרת חסימות IP בודד",
+       "blocklist-addressblocks": "הסתרת חסימות של כתובות IP בודדות",
        "blocklist-rangeblocks": "הסתרת חסימות טווחים",
        "blocklist-timestamp": "תאריך ושעה",
        "blocklist-target": "יעד",
        "markedaspatrollederror": "לא ניתן לסמן כבדוק",
        "markedaspatrollederrortext": "יש לציין גרסה שברצונך לסמן כבדוקה.",
        "markedaspatrollederror-noautopatrol": "אינך מורשה לסמן שינויים של עצמך כבדוקים.",
-       "markedaspatrollednotify": "ש×\99× ×\95×\99 ×\96×\94 ×\9c\"$1\" סומן כבדוק.",
+       "markedaspatrollednotify": "ש×\99× ×\95×\99 ×\96×\94 ×\91×\93×£ \"$1\" סומן כבדוק.",
        "markedaspatrollederrornotify": "סימון השינוי כבדוק נכשל.",
        "patrol-log-page": "יומן שינויים בדוקים",
        "patrol-log-header": "יומן זה מציג גרסאות שנבדקו.",
index 4821bb6..ab79a03 100644 (file)
@@ -4,7 +4,8 @@
                        "Paul Beppler",
                        "Midnight Gambler",
                        "Macofe",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "Ghiutun"
                ]
        },
        "tog-underline": "Links (Verbinnunge) unnerstreiche:",
        "spam_reverting": "Letzte Version ohne Links zu $1 wiederheargestellt.",
        "spam_blanking": "Alle Versione mit enem Link zu $1 woorre bereinicht.",
        "spam_deleting": "Alle Versione mit enem Link zu $1 woorre abgewischt.",
-       "simpleantispam-label": "Spamschutzprüfung.\nHier '''NIX''' introohn!",
+       "simpleantispam-label": "Spamschutzprüfung.\nHier <strong>NIX</strong> introohn!",
        "pageinfo-title": "Informatione zu \"$1\"",
        "pageinfo-not-current": "Die Information kann leider net für alte Versione zur Verfüchung gestellt sin.",
        "pageinfo-header-basic": "Basisinformatione",
index c012d7b..487e3de 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|precedente|precedente $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|sequente|sequente $1}}",
        "whatlinkshere-links": "← ligamines",
-       "whatlinkshere-hideredirs": "Celar redirectiones",
-       "whatlinkshere-hidetrans": "Celar transclusiones",
-       "whatlinkshere-hidelinks": "Celar ligamines",
-       "whatlinkshere-hideimages": "Celar le ligamines a files",
+       "whatlinkshere-hideredirs": "$1 redirectiones",
+       "whatlinkshere-hidetrans": "$1 transclusiones",
+       "whatlinkshere-hidelinks": "$1 ligamines",
+       "whatlinkshere-hideimages": "$1 le ligamines a files",
        "whatlinkshere-filters": "Filtros",
        "whatlinkshere-submit": "Va",
        "autoblockid": "Auto-blocada №$1",
index 20abcbd..0fc6256 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|sebelumnya $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|selanjutnya $1}}",
        "whatlinkshere-links": "← pranala",
-       "whatlinkshere-hideredirs": "Sembunyikan pengalihan",
-       "whatlinkshere-hidetrans": "Sembunyikan transklusi",
-       "whatlinkshere-hidelinks": "Sembunyikan pranala",
-       "whatlinkshere-hideimages": "Sembunyikan pranala berkas",
+       "whatlinkshere-hideredirs": "$1 pengalihan",
+       "whatlinkshere-hidetrans": "$1 transklusi",
+       "whatlinkshere-hidelinks": "$1 pranala",
+       "whatlinkshere-hideimages": "$1 pranala berkas",
        "whatlinkshere-filters": "Penyaring",
        "whatlinkshere-submit": "Tuju ke",
        "autoblockid": "Blokir otomatis #$1",
index 8ac3982..87e183e 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|1=хьалхайоагIа|хьалхайоагIараш}} $1",
        "whatlinkshere-next": "{{PLURAL:$1|1=тIехьайоагIар|тIехьайоагIараш}} $1",
        "whatlinkshere-links": "← тIахьожаяргаш",
-       "whatlinkshere-hideredirs": "ДIакъайладаккха дIа-сахьожадар",
-       "whatlinkshere-hidetrans": "ДIакъайладаккха юкъедахараш",
-       "whatlinkshere-hidelinks": "ДIакъайлаяккха тIахьожаяргаш",
+       "whatlinkshere-hideredirs": "$1 дIа-хьа чуяьккхамаш",
+       "whatlinkshere-hidetrans": "$1 чуяьккхамаш",
+       "whatlinkshere-hidelinks": "$1 Iинкаш",
        "whatlinkshere-hideimages": "$1 суртIинкаш",
        "whatlinkshere-filters": "Фильтры",
        "blockip": "Укх {{GENDER:$1|доакъошхочоа}} ч|ега бола",
index 330e083..897d6ec 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|precedente|precedenti $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|successivo|successivi $1}}",
        "whatlinkshere-links": "← collegamenti",
-       "whatlinkshere-hideredirs": "Nascondi redirect",
-       "whatlinkshere-hidetrans": "Nascondi inclusioni",
-       "whatlinkshere-hidelinks": "Nascondi collegamenti",
-       "whatlinkshere-hideimages": "Nascondi collegamenti da file",
+       "whatlinkshere-hideredirs": "$1 redirect",
+       "whatlinkshere-hidetrans": "$1 inclusioni",
+       "whatlinkshere-hidelinks": "$1 collegamenti",
+       "whatlinkshere-hideimages": "$1 link da file",
        "whatlinkshere-filters": "Filtri",
        "whatlinkshere-submit": "Vai",
        "autoblockid": "Autoblocco #$1",
index 4f85d2c..265268d 100644 (file)
        "mytalk": "トーク",
        "anontalk": "トーク",
        "navigation": "案内",
-       "and": "&#32;ã\81¨",
+       "and": "&#32;ã\81\8aã\82\88ã\81³",
        "qbfind": "検索",
        "qbbrowse": "閲覧",
        "qbedit": "編集",
        "whatlinkshere-prev": "前の$1件",
        "whatlinkshere-next": "次の$1件",
        "whatlinkshere-links": "← リンク",
-       "whatlinkshere-hideredirs": "転送ページを非表示",
-       "whatlinkshere-hidetrans": "参照読み込みを非表示",
-       "whatlinkshere-hidelinks": "リンクを非表示",
-       "whatlinkshere-hideimages": "ファイルへのリンクを非表示",
+       "whatlinkshere-hideredirs": "転送ページを$1",
+       "whatlinkshere-hidetrans": "参照読み込みを$1",
+       "whatlinkshere-hidelinks": "リンクを$1",
+       "whatlinkshere-hideimages": "ファイルへのリンクを$1",
        "whatlinkshere-filters": "絞り込み",
        "whatlinkshere-submit": "実行",
        "autoblockid": "自動ブロック #$1",
index 9c06301..72246d0 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|sadurungé|$1 sadurungé}}",
        "whatlinkshere-next": "{{PLURAL:$1|sabanjuré|$1 sabanjuré}}",
        "whatlinkshere-links": "← pranala",
-       "whatlinkshere-hideredirs": "Dhelikaké lih-lihan",
-       "whatlinkshere-hidetrans": "Dhelikaké transklusi",
-       "whatlinkshere-hidelinks": "Dhelikaké pranala",
-       "whatlinkshere-hideimages": "Dhelikaké pranala barkas",
+       "whatlinkshere-hideredirs": "$1 lih-lihan",
+       "whatlinkshere-hidetrans": "$1 transklusi",
+       "whatlinkshere-hidelinks": "pranala-pranala $1",
+       "whatlinkshere-hideimages": "$1 pranala berkas",
        "whatlinkshere-filters": "Panyaringan",
        "autoblockid": "Blokir otomatis #$1",
        "block": "Blokir panganggo",
index aad4c59..9873e5c 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|이전|이전 $1개}}",
        "whatlinkshere-next": "{{PLURAL:$1|다음|다음 $1개}}",
        "whatlinkshere-links": "← 가리키는 문서 목록",
-       "whatlinkshere-hideredirs": "넘겨주기를 숨기기",
-       "whatlinkshere-hidetrans": "끼워넣기를 숨기기",
-       "whatlinkshere-hidelinks": "링크를 숨기기",
-       "whatlinkshere-hideimages": "파일 링크를 숨기기",
+       "whatlinkshere-hideredirs": "넘겨주기를 $1",
+       "whatlinkshere-hidetrans": "끼워넣기를 $1",
+       "whatlinkshere-hidelinks": "링크를 $1",
+       "whatlinkshere-hideimages": "파일 링크를 $1",
        "whatlinkshere-filters": "필터",
        "whatlinkshere-submit": "계속",
        "autoblockid": "자동 차단 #$1",
        "authpage-cannot-create-continue": "계정 만들기를 계속할 수 없습니다. 사용자 세션의 시간이 초과되었을 가능성이 높습니다.",
        "authpage-cannot-link": "계정 연결을 시작할 수 없습니다.",
        "authpage-cannot-link-continue": "계정 연결을 계속할 수 없습니다. 사용자 세션의 시간이 초과되었을 가능성이 높습니다.",
+       "changecredentials-submit": "수정",
        "changecredentials-submit-cancel": "취소",
        "removecredentials-submit": "제거",
-       "removecredentials-submit-cancel": "취소"
+       "removecredentials-submit-cancel": "취소",
+       "credentialsform-account": "계정 이름:",
+       "cannotlink-no-provider-title": "연결할 수 있는 계정이 없음",
+       "cannotlink-no-provider": "연결할 수 있는 계정이 없습니다."
 }
index 0a3f3a3..f4eaa0b 100644 (file)
        "parser-template-recursion-depth-warning": "Schablohne rohfe sesch zo öff sellver op ($1)",
        "language-converter-depth-warning": "Zoh vill Verschachtelonge (övver $1) beim Täx-Ömwandelle vun eine Schprohch udder Schrevv en en anndere.",
        "node-count-exceeded-category": "Sigge, woh dä <i lang=\"en\" xml:lang=\"en\">node-count</i> övverschredde es",
-       "node-count-exceeded-category-desc": "Di Sigg hät dä \"node-count\" övverschredde.",
-       "node-count-exceeded-warning": "Heh di Sigg hät dä \"node-count\" övverschredde",
-       "expansion-depth-exceeded-category": "Sigge, woh de \"expansion depth\" övverschredde es",
-       "expansion-depth-exceeded-category-desc": "Dat heh es de Saachjropp för Sigge, woh de \"expansion depth\" övverschreddde es.",
-       "expansion-depth-exceeded-warning": "Heh di Sigg hät de \"expansion depth\" övverschredde",
+       "node-count-exceeded-category-desc": "Di Sigg hät dä <i lang=\"en\" xml:lang=\"en\">node-count</i> övverschredde.",
+       "node-count-exceeded-warning": "Heh di Sigg hät dä <i lang=\"en\" xml:lang=\"en\">node-count</i> övverschredde",
+       "expansion-depth-exceeded-category": "Sigge, woh zoh vill automattesch ennjeföhsch weed",
+       "expansion-depth-exceeded-category-desc": "Dat heh es de Saachjropp för Sigge, woh zoh vill automattesch ennjeföhsch weed.",
+       "expansion-depth-exceeded-warning": "En heh di Sigg weed zoh vill automattesch ennjeföhsch.",
        "parser-unstrip-loop-warning": "Ene Befähl em Täx betrek sesch op sesch sällefs.",
        "parser-unstrip-recursion-limit": "Ene Befähl em Täx es mieh wi {{PLURAL:$1|eijmohl|$1 Mohl|jaa nit}} met  sesch sellef verschachtelt.",
        "converter-manual-rule-error": "Doh es ene Fähler en ene händesche Önwandelongsrääjel zwesche de Schprohche.",
        "whatlinkshere-prev": "de vörijje {{PLURAL:$1||$1|noll}} zeije",
        "whatlinkshere-next": "de nächste {{PLURAL:$1||$1|noll}} zeije",
        "whatlinkshere-links": "← Links",
-       "whatlinkshere-hideredirs": "De Ömleijdonge verschteijsche",
-       "whatlinkshere-hidetrans": "De Oproofe verschteijsche",
-       "whatlinkshere-hidelinks": "De nommahle Lengks verschteijsche",
-       "whatlinkshere-hideimages": "De Lengks op Datteihje verscheijsche",
+       "whatlinkshere-hideredirs": "de Ömleijdonge $1",
+       "whatlinkshere-hidetrans": "de Oproofe $1",
+       "whatlinkshere-hidelinks": "de nommahle Lengks $1",
+       "whatlinkshere-hideimages": "$1 de Lengks op Datteihje",
        "whatlinkshere-filters": "Ußsööke",
        "whatlinkshere-submit": "Lohß jonn!",
        "autoblockid": "Automattesche Sperr Nommer $1",
        "api-error-overwrite": "En Dattei ze övverschrieve es nit zohjelohße.",
        "api-error-stashfailed": "Fähler: Dä ẞööver hät kein Datteije zweschejeschpeischert.",
        "api-error-publishfailed": "Ene Fähler es em ẞööver opjetrodde. En zweschejescheischerte Dattei kunnt nit öffentlesch jemaat wääde.",
-       "api-error-stasherror": "Ene Fähler es opjetrodde, wi mer di Dattei en der \"stash\" huh aam lahde wohre.",
-       "api-error-stashedfilenotfound": "Di Dattei wohd em \"stash\" nit jefonge, wi mer se vun doh huh lahde wullte.",
-       "api-error-stashpathinvalid": "Di Dattei wohd em \"stash\" nit jefonge, weil dä Pad do hen nit jeschtemmp hät.",
-       "api-error-stashfilestorage": "Ene Fähler es opjetrodd, wi mer di Dattei en der \"stash\" donn wullte.",
-       "api-error-stashzerolength": "Dä ẞööver kunnt di Dattei nit en der \"stash\" donn, weil en dä Dattei nix dren schtund.",
-       "api-error-stashnotloggedin": "Do moß enjelogg sin, öm en Dattei en der \"stash\" huh ze lahde.",
-       "api-error-stashwrongowner": "Di Dattei em \"stash\" woh De draan wells, jehürt Der nit.",
-       "api-error-stashnosuchfilekey": "Di Dattei em \"stash\" woh De draan wells, jidd_et nit.",
+       "api-error-stasherror": "Ene Fähler es opjetrodde, wi mer di Dattei en der Bunker huh aam lahde wohre.",
+       "api-error-stashedfilenotfound": "Di Dattei wohd em Bunker nit jefonge, wi mer se vun doh huh lahde wullte.",
+       "api-error-stashpathinvalid": "Di Dattei wohd em Bunker nit jefonge, weil dä Pad do hen nit jeschtemmp hät.",
+       "api-error-stashfilestorage": "Ene Fähler es opjetrodd, wi mer di Dattei en der Bunker donn wullte.",
+       "api-error-stashzerolength": "Dä ẞööver kunnt di Dattei nit en der Bunker donn, weil en dä Dattei nix dren schtund.",
+       "api-error-stashnotloggedin": "Do moß enjelogg sin, öm huhjelahde Datteije en der Bunker ze donn.",
+       "api-error-stashwrongowner": "Di Dattei em Bunker woh De draan wells, di jehürt Der nit.",
+       "api-error-stashnosuchfilekey": "Dä Schlößel fö_di Dattei, woh De draan wells, em Bunker, di jidd_et nit.",
        "api-error-timeout": "Dä ẞööver hät en dä jewennde Zick nit jeantwoot.",
        "api-error-unclassified": "Ene Fähler es opjetrodde, der mer nit kenne.",
        "api-error-unknown-code": "Nit bekannte Fähler: „$1“",
index f03072b..1c826ce 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|yê|$1 yên}} berê",
        "whatlinkshere-next": "{{PLURAL:$1|yê|$1 yên}} din",
        "whatlinkshere-links": "← girêdan",
-       "whatlinkshere-hideredirs": "Beralîkirinan veşêre",
+       "whatlinkshere-hideredirs": "Beralîkirinan $1",
        "whatlinkshere-hidetrans": "Naverokan $1",
-       "whatlinkshere-hidelinks": "Girêdanan veşêre",
-       "whatlinkshere-hideimages": "Girêdanên wêneyan veşêre",
+       "whatlinkshere-hidelinks": "Girêdanan $1",
+       "whatlinkshere-hideimages": "Girêdanên wêneyan $1",
        "whatlinkshere-filters": "Parzûn",
        "block": "Bikarhêner asteng bike",
        "unblock": "Astengkirinê rake",
index f6c6e64..2fdc605 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|vireg|vireg $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|nächsten|nächst $1}}",
        "whatlinkshere-links": "← Linken",
-       "whatlinkshere-hideredirs": "Viruleedunge verstoppen",
-       "whatlinkshere-hidetrans": "Agebonne Schabloune verstoppen",
-       "whatlinkshere-hidelinks": "Linke verstoppen",
-       "whatlinkshere-hideimages": "Linken op Fichiere verstoppen",
+       "whatlinkshere-hideredirs": "Viruleedunge $1",
+       "whatlinkshere-hidetrans": "Agebonne Schabloune $1",
+       "whatlinkshere-hidelinks": "Linken $1",
+       "whatlinkshere-hideimages": "Linken op Fichiere $1",
        "whatlinkshere-filters": "Filteren",
        "whatlinkshere-submit": "Lass",
        "autoblockid": "Automatesch Spär #$1",
        "log-action-filter-rights-rights": "Manuell Ännerung",
        "log-action-filter-rights-autopromote": "Automatesch Ännerung",
        "log-action-filter-upload-upload": "Neien Upload",
-       "log-action-filter-upload-overwrite": "Nees eroplueden"
+       "log-action-filter-upload-overwrite": "Nees eroplueden",
+       "authmanager-retype-help": "Passwuert nach eng Kéier fir ze konfirméieren",
+       "authmanager-email-help": "E-Mail-Adress",
+       "authmanager-realname-label": "Richtegen Numm",
+       "authmanager-realname-help": "Richtegen Numm vum Benotzer",
+       "authmanager-provider-temporarypassword": "Temporäert Passwuert:",
+       "authprovider-resetpass-skip-label": "Iwwersprangen",
+       "specialpage-securitylevel-not-allowed-title": "Net erlaabt",
+       "changecredentials-submit": "Änneren",
+       "changecredentials-submit-cancel": "Ofbriechen",
+       "removecredentials-submit": "Ewechhuelen",
+       "removecredentials-submit-cancel": "Ofbriechen"
 }
index 915a875..377504b 100644 (file)
        "whatlinkshere-links": "← nuorodos",
        "whatlinkshere-hideredirs": "$1 nukreipimus",
        "whatlinkshere-hidetrans": "$1 įtraukimus",
-       "whatlinkshere-hidelinks": "Paslėpti nuorodas",
-       "whatlinkshere-hideimages": "Paslėpti failo nuorodas",
+       "whatlinkshere-hidelinks": "$1 nuorodas",
+       "whatlinkshere-hideimages": "$1 failų nuorodos",
        "whatlinkshere-filters": "Filtrai",
        "whatlinkshere-submit": "Eiti",
        "autoblockid": "Automatinis blokavimas # $1",
index accb759..91a7db1 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|претходна|претходни $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|следна|следни $1}}",
        "whatlinkshere-links": "← врски",
-       "whatlinkshere-hideredirs": "Скриј пренасочувања",
-       "whatlinkshere-hidetrans": "Скриј превметнувања",
-       "whatlinkshere-hidelinks": "Скриј врски",
+       "whatlinkshere-hideredirs": "$1 пренасочувања",
+       "whatlinkshere-hidetrans": "$1 превметнувања",
+       "whatlinkshere-hidelinks": "$1 врски",
        "whatlinkshere-hideimages": "$1 врски кон податотека",
        "whatlinkshere-filters": "Филтри",
        "whatlinkshere-submit": "Дај",
index 3f3cf2b..bb347df 100644 (file)
        "errorpagetitle": "Foutmelding",
        "returnto": "Weerumme naor $1.",
        "tagline": "Van {{SITENAME}}",
-       "help": "Hulpe en kontakt",
+       "help": "Hulpe",
        "search": "Zeuken",
        "searchbutton": "Zeuken",
        "go": "Artikel",
        "disclaimers": "Veurbehold",
        "disclaimerpage": "Project:Veurbehoud",
        "edithelp": "Hulpe mit bewarken",
+       "helppage-top-gethelp": "Hulpe",
        "mainpage": "Veurblad",
        "mainpage-description": "Veurblad",
        "policy-url": "Project:Beleid",
        "viewsourcetext": "Je kunnen de brontekste van disse zied bewarken en bekieken.",
        "viewyourtext": "Je kunnen <strong>joew bewarkingen</strong> an de brontekste van disse zied bekieken en kopiëren.",
        "protectedinterface": "Op disse zied steet tekste die gebruukt wördt veur systeemteksten van disse wiki. Allinnig beheerders kunnen disse zied bewarken.\nUm vertalingen veur alle wiki's derbie te zetten of te wiezigen, gebruuk [//translatewiki.net/ translatewiki.net], t vertaalprojekt veur MediaWiki.",
-       "editinginterface": "<strong>Waorschuwing:</strong> je bewarken n zied die gebruukt wörden deur de programmatuur. Wa'j hier wiezigen, is van invleud op de hele wiki. Um vertalingen derbie te zetten of te wiezigen veur alle wiki's, gebruuk [//translatewiki.net/wiki/Main_Page?setlang=nds-nl translatewiki.net], t vertalingsprojekt veur MediaWiki.",
+       "editinginterface": "<strong>Waorschuwing:</strong> je bewarken n zied die gebruukt wördt deur de programmatuur. \nWa'j disse zied wiezigen is van invleud op t gebrukersuterlik veur aander gebrukers van disse wiki.",
+       "translateinterface": "Um vertalingen veur alle wiki's te doon of te wiezigen ku'j gebruukmaken van [//translatewiki.net/ translatewiki.net], t vertaalprojekt veur MediaWiki.",
        "cascadeprotected": "Disse zied is beveiligd umdat t veurkömp in de volgende {{PLURAL:$1|zied|ziejen}}, die beveiligd {{PLURAL:$1|is|bin}} mit de \"kaskade\"-opsie:\n$2",
        "namespaceprotected": "Je maggen gien ziejen in de '''$1'''-naamruumte bewarken.",
        "customcssprotected": "Je kunnen disse CSS-zied niet bewarken, umdat der persoonlike instellingen van n aandere gebruker in staon.",
        "preview": "Naokieken",
        "showpreview": "Bewarking naokieken",
        "showdiff": "Verschil bekieken",
+       "blankarticle": "<strong>Waorschuwing:</strong> de zied die'j anmaken willen is leeg.\nA'j noen weer op \"{{int:savearticle}}\" klikken, dan wördt de zied an-emaakt zonder enige inhoud.",
        "anoneditwarning": "<strong>Waorschuwing:</strong> je bin niet an-emeld.\nJoew IP-adres zal op-esleugen wörden a'j wiezigingen op disse zied anbrengen. A'j je eigen <strong>[$1 anmelden]</strong> of <strong>[$2 inschrieven]</strong> dan koemen joew bewarkingen onder joew gebrukersnaam te staon, samen mit aandere veurdelen.",
        "anonpreviewwarning": "''Je bin niet an-emeld.''\n''Deur de bewarking op te slaon wörden joew IP-adres op-esleugen in de ziedgeschiedenisse.''",
        "missingsummary": "'''Herinnering:''' je hebben gien samenvatting op-egeven veur de bewarking. A'j noen weer op ''Opslaon'' klikken wörden de bewarking zonder samenvatting op-esleugen.",
        "exbeforeblank": "veurdat disse zied leegemaakt wörden stung hier: '$1'",
        "delete-confirm": "\"$1\" vortdoon",
        "delete-legend": "Vortdoon",
-       "historywarning": "'''Waorschuwing''': de zied die'j vortdoon, hef $1 {{PLURAL:$1|versie|versies}}:",
+       "historywarning": "'''Waorschuwing''': de zied die'j vortdoon willen, hef $1 {{PLURAL:$1|versie|versies}}:",
        "historyaction-submit": "Bekiek",
        "confirmdeletetext": "Je staon op t punt n zied en de geschiedenisse dervan vort te doon.\nBevestig hieronder dat dit inderdaod de bedoeling is, da'j de gevolgen begriepen en dat t akkedeert mit t [[{{MediaWiki:Policy-url}}|beleid]].",
        "actioncomplete": "Uutevoerd",
        "delete-edit-reasonlist": "Redens veur t vortdoon bewarken",
        "delete-toobig": "Disse zied hef n lange bewarkingsgeschiedenisse, meer as $1 {{PLURAL:$1|versie|versies}}.\nt Vortdoon van dit soort ziejen is mit rechten bepark um t per ongelok versteuren van de warking van {{SITENAME}} te veurkoemen.",
        "delete-warning-toobig": "Disse zied hef n lange bewarkingsgeschiedenisse, meer as $1 {{PLURAL:$1|versie|versies}}.\nWoart je: t vortdoon van disse zied kan de warking van de databanke van {{SITENAME}} versteuren.\nWees veurzichtig",
+       "deleting-backlinks-warning": "<strong>Waorschuwing:</strong> [[Special:WhatLinksHere/{{FULLPAGENAME}}|aandere ziejen]] gebruken of verwiezen naor de zied die'j vortdoon willen.",
        "rollback": "Wiezigingen herstellen",
        "rollbacklink": "weerummedreien",
        "rollbacklinkcount": "{{PLURAL:$1|één bewarking|$1 bewarkingen}} weerummedreien",
        "whatlinkshere-prev": "{{PLURAL:$1|veurige|veurige $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|volgende|volgende $1}}",
        "whatlinkshere-links": "← verwiezingen",
-       "whatlinkshere-hideredirs": "$1 deurverwiezingen",
-       "whatlinkshere-hidetrans": "$1 in-evoegden mallen",
-       "whatlinkshere-hidelinks": "$1 verwiezingen",
+       "whatlinkshere-hideredirs": "Redirects $1",
+       "whatlinkshere-hidetrans": "Vörlageninbinnungen $1",
+       "whatlinkshere-hidelinks": "Lenken $1",
        "whatlinkshere-hideimages": "$1 bestaandsverwiezingen",
        "whatlinkshere-filters": "Filters",
        "autoblockid": "Automatiese blokkering #$1",
index 9ba39f7..abe72dc 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|vörige|vörige $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|nächste|nächste $1}}",
        "whatlinkshere-links": "← Lenken",
-       "whatlinkshere-hideredirs": "Redirects versteken",
-       "whatlinkshere-hidetrans": "Vörlageninbinnungen $1",
-       "whatlinkshere-hidelinks": "Lenken versteken",
-       "whatlinkshere-hideimages": "Dateilenken $1",
+       "whatlinkshere-hideredirs": "$1 deurverwiezingen",
+       "whatlinkshere-hidetrans": "$1 in-evoegden mallen",
+       "whatlinkshere-hidelinks": "$1 verwiezingen",
+       "whatlinkshere-hideimages": "$1 bestaandsverwiezingen",
        "whatlinkshere-filters": "Filters",
        "autoblockid": "Autoblock #$1",
        "block": "Bruker blocken",
index 97c6921..2ef3f30 100644 (file)
@@ -5,7 +5,8 @@
                        "Hiloin Natoi",
                        "Ilja.mos",
                        "Mashoi7",
-                       "Misosoof"
+                       "Misosoof",
+                       "Ghiutun"
                ]
        },
        "tog-underline": "Linkien alleviivuamine:",
index 7aa422d..6862c00 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|poprzednie|poprzednie $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|następne|następne $1}}",
        "whatlinkshere-links": "← linkujące",
-       "whatlinkshere-hideredirs": "Ukryj przekierowania",
-       "whatlinkshere-hidetrans": "Ukryj dołączenia",
-       "whatlinkshere-hidelinks": "Ukryj linki",
-       "whatlinkshere-hideimages": "Ukryj linki z plików",
+       "whatlinkshere-hideredirs": "$1 przekierowania",
+       "whatlinkshere-hidetrans": "$1 dołączenia",
+       "whatlinkshere-hidelinks": "$1 linki",
+       "whatlinkshere-hideimages": "$1 linki z plików",
        "whatlinkshere-filters": "Filtry",
        "whatlinkshere-submit": "Dalej",
        "autoblockid": "automatyczna blokada nr $1",
index 52c8279..7bb12ee 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|d'un andré|andré ëd $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|d'un anans|anans ëd $1}}",
        "whatlinkshere-links": "← anliure",
-       "whatlinkshere-hideredirs": "Stërmé ridiression",
-       "whatlinkshere-hidetrans": "Stërmé transclusion",
-       "whatlinkshere-hidelinks": "Stërmé anliure",
+       "whatlinkshere-hideredirs": "$1 le ridiression",
+       "whatlinkshere-hidetrans": "$1 anclusion",
+       "whatlinkshere-hidelinks": "$1 anliura",
        "whatlinkshere-hideimages": "$1 j'archivi lijà",
        "whatlinkshere-filters": "Filtr",
        "autoblockid": "Blocagi automàtich #$1",
index cc3f168..4868719 100644 (file)
        "passwordreset-emailelement": "کارن-نوم: \n$1\n\nلنډمهاله پټنوم: \n$2",
        "passwordreset-emailsentemail": "د پټنوم بيا پرځای کېدنې لپاره برېښليک درولېږل شو.",
        "passwordreset-emailsent-capture": "د پټنوم بياپرځای کېدنې لپار مو يو برېښليک درولېږه، برېښليک په لاندې توگه ښودل شوی.",
+       "passwordreset-invalideamil": "ناسمه برېښليک پته",
        "changeemail": "برېښليک پته بدلول يا ليرې کول",
        "changeemail-header": "د گڼون برېښليک پته بدلول",
        "changeemail-no-info": "دې مخ ته د لاسرسي لپاره بايد غونډال کې ورننوځۍ.",
        "exif-primarychromaticities": "د لومړيتوبونو رنگينتوبونه",
        "exif-datetime": "د دوتنې د بدلون وخت او نېټه",
        "exif-imagedescription": "انځور سرليک",
-       "exif-make": "د کامرې جوړونکی",
+       "exif-make": "کامره جوړونکی",
        "exif-model": "د کامرې ماډل",
        "exif-software": "کارېدلې ساوترۍ",
        "exif-artist": "ليکوال",
        "exif-pixelydimension": "د انځور جگوالی",
        "exif-usercomment": "د کارن تبصرې",
        "exif-relatedsoundfile": "اړونده غږيزه دوتنه",
-       "exif-datetimeoriginal": "د Ø§Ù\88Ù\85تÙ\88Ú© Ø¯ Ø¬Ù\88Ú\93Û\90دÙ\86Û\90 Ù\88خت Ø§Ù\88 Ù\86Û\90Ù¼Ù\87",
-       "exif-datetimedigitized": "د گڼياليز کېدنې وخت او نېټه",
+       "exif-datetimeoriginal": "د اومتوک جوړېدنې وخت او نېټه",
+       "exif-datetimedigitized": "د گڼياليزېدنې وخت او نېټه",
        "exif-exposuretime": "رڼاغورځونې وخت",
        "exif-exposuretime-format": "$1 ثانيه ($2)",
        "exif-fnumber": "F شمېره",
        "mw-widgets-titleinput-description-redirect": "$1 ته ورگرځېدنه",
        "randomrootpage": "د ناټاکلې ريښې مخ",
        "log-action-filter-all": "ټول",
-       "log-action-filter-block-block": "بنديز لگول"
+       "log-action-filter-block-block": "بنديز لگول",
+       "authmanager-email-label": "برېښليک",
+       "authmanager-email-help": "برېښليک پته",
+       "authmanager-realname-label": "اصلي نوم",
+       "authmanager-realname-help": "د کارن اصلي نوم",
+       "authprovider-resetpass-skip-label": "تېرېدل",
+       "changecredentials-submit": "بدلول",
+       "changecredentials-submit-cancel": "ناگارل",
+       "removecredentials-submit": "غورځول",
+       "removecredentials-submit-cancel": "ناگارل",
+       "credentialsform-account": "گڼون نوم:"
 }
index de3a243..f42a37f 100644 (file)
@@ -95,7 +95,8 @@
                        "Caçador de Palavras",
                        "Luk3",
                        "Ryuu",
-                       "Luan"
+                       "Luan",
+                       "Anderson Costa"
                ]
        },
        "tog-underline": "Sublinhar links:",
        "apisandbox": "Caixa de areia da API",
        "apisandbox-api-disabled": "A API está desabilitada neste site.",
        "apisandbox-intro": "Use esta página para realizar testes com o '''serviço web de API do MediaWiki'''.\nConsulte a [//www.mediawiki.org/wiki/API:Main_page a documentação API] para obter mais detalhes de uso da API.  Exemplo: [//www.mediawiki.org/wiki/API#A_simple_example obter o conteúdo de uma Página principal].  Selecione uma ação para mais exemplos.\n\nNote que, embora esta seja uma área de testes, as ações que executar nesta página podem modificar a wiki.",
+       "apisandbox-unfullscreen": "Mostrar página",
        "apisandbox-submit": "Fazer requisição",
        "apisandbox-reset": "Limpar",
        "apisandbox-retry": "Tentar novamente",
        "whatlinkshere-links": "← afluentes",
        "whatlinkshere-hideredirs": "$1 redirecionamentos",
        "whatlinkshere-hidetrans": "$1 transclusões",
-       "whatlinkshere-hidelinks": "$1 links",
-       "whatlinkshere-hideimages": "$1 links para arquivos",
+       "whatlinkshere-hidelinks": "$1 ligações",
+       "whatlinkshere-hideimages": "$1 ligações para ficheiros",
        "whatlinkshere-filters": "Filtros",
        "whatlinkshere-submit": "Avançar",
        "autoblockid": "Autobloqueio #$1",
index 4881cf8..d2053db 100644 (file)
        "whatlinkshere-links": "← afluentes",
        "whatlinkshere-hideredirs": "$1 redirecionamentos",
        "whatlinkshere-hidetrans": "$1 transclusões",
-       "whatlinkshere-hidelinks": "$1 ligações",
-       "whatlinkshere-hideimages": "$1 ligações para ficheiros",
+       "whatlinkshere-hidelinks": "$1 links",
+       "whatlinkshere-hideimages": "$1 links para arquivos",
        "whatlinkshere-filters": "Filtros",
        "whatlinkshere-submit": "Ir",
        "autoblockid": "Bloqueio automático nº$1",
index 98bb3ce..549f998 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|1=предыдущая|предыдущие}} $1",
        "whatlinkshere-next": "{{PLURAL:$1|1=следующая|следующие}} $1",
        "whatlinkshere-links": "← ссылки",
-       "whatlinkshere-hideredirs": "Скрыть перенаправления",
-       "whatlinkshere-hidetrans": "Скрыть включения",
-       "whatlinkshere-hidelinks": "Скрыть ссылки",
-       "whatlinkshere-hideimages": "Скрыть файловые ссылки",
+       "whatlinkshere-hideredirs": "$1 перенаправления",
+       "whatlinkshere-hidetrans": "$1 включения",
+       "whatlinkshere-hidelinks": "$1 ссылки",
+       "whatlinkshere-hideimages": "$1 файловые ссылки",
        "whatlinkshere-filters": "Фильтры",
        "whatlinkshere-submit": "Выполнить",
        "autoblockid": "Автоблокировка #$1",
diff --git a/languages/i18n/shn.json b/languages/i18n/shn.json
new file mode 100644 (file)
index 0000000..8ebf5ac
--- /dev/null
@@ -0,0 +1,775 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Khun Sar",
+                       "Nemo bis",
+                       "Piangpha",
+                       "Saiddzone",
+                       "Saimawnkham",
+                       "Saosukham",
+                       "Sengwan"
+               ]
+       },
+       "tog-underline": "ႁဵင်းၵွင်ႉ ဢၼ်ထတ်းထႅဝ်တႂ်ႈဝႆႉ:",
+       "tog-hideminor": "လပ်ႉဝႆႉ ၶေႃႈထတ်းမႄးဢိတ်းဢွတ်း တီႈလွင်ႈလႅၵ်ႈလၢႆႊ ဢၼ်ၸင်ႇပူၼ်ႉမႃး",
+       "tog-hidepatrolled": "လပ်ႉဝႆႉ ၵၢၼ်ပႂ်ႉတူၺ်း ၶေႃႈထတ်းမႄး တီႈလွင်ႈလႅၵ်ႈလၢႆႊဢၼ်ၸင်ႇပူၼ်ႉမႃး",
+       "tog-newpageshidepatrolled": "လပ်ႉဝႆႉၼႃႈလိၵ်ႈဢၼ်ပႂ်ႉတူၺ်း ၵႃႊတီႈသဵၼ်ႈၸိုဝ်ႈၼႃႈလိၵ်ႈမႂ်ႇ",
+       "tog-hidecategorization": "သိူင်ႇၼႃႈလိၵ်ႈ လွင်ႈပၢႆး-",
+       "tog-extendwatchlist": "မႄႇၼႄ သဵၼ်ႈၸိုဝ်ႈ တႃႇၼႄလွင်ႈလႅၵ်ႈလၢႆႊတင်းသဵင်ႈ၊ ဢၼ်ဢမ်ႇၵႃး ၸိူဝ်းလႅၵ်ႈလၢႆႈပႆႇပေႃးႁိုင်",
+       "tog-usenewrc": "လွင်ႈလႅၵ်ႈလၢႆႊၼႃႈလိၵ်ႈၸုမ်း ၼႂ်းလွင်ႈလႅၵ်ႈလၢႆႊလႄႈသဵၼ်ႈၸိုဝ်ႈ ဢၼ်ပူၼ်ႉမႃးပႆႇႁိုင်",
+       "tog-numberheadings": "ႁူဝ်ၶေႃႈၶပ်ႉတူဝ်ၼပ်ႉဝႅၼ်ႊဝႅၼ်ႊ",
+       "tog-showtoolbar": "ၼႄပၼ် ႁၢဝ်းၶိူင်ႈထတ်းမႄး",
+       "tog-editondblclick": "ၼဵၵ်းၵူပ်ႉသေ ထတ်းမႄးၼႃႈလိၵ်ႈ",
+       "tog-editsectiononrightclick": "ၼဵၵ်းၼိူဝ်ႁူဝ်ၶေႃႈၵၼ်ႊသေ ၽုၺ်ႇၵၢၼ်ထတ်းမႄးၵၼ်ႊ",
+       "tog-watchcreations": "ထႅမ်ၼႃႈလိၵ်ႈ​ လႄႈ ၾၢႆႇ ဢၼ်ၵဝ်ၶႃႈသၢင်ႈၼၼ်ႉ သႂ်ႇတီႈသဵၼ်ႈမၢႆၵဝ်ၶႃႈ",
+       "tog-watchdefault": "ထႅမ်ၼႃႈလိၵ်ႈလႄႈၾၢႆႇ ဢၼ်ၵဝ်ၶႃႈသၢင်ႈၼၼ်ႉ သႂ်ႇတီႈသဵၼ်ႈမၢႆၵဝ်ၶႃႈ",
+       "tog-watchmoves": "ထႅမ်ၼႃႈလိၵ်ႈလႄႈၾၢႆႇလ် ဢၼ်ၵဝ်ၶႃႈၶၢႆႉမႃးၼၼ်ႉ သႂ်ႇတီႈသဵၼ်ႈမၢႆၵဝ်ၶႃႈ",
+       "tog-watchdeletion": "ထႅမ်ၼႃႈလိၵ်ႈလႄႈၾၢႆႇလ် ဢၼ်ၵဝ်ႇၶႃႈမွတ်ႇၼၼ်ႉ သႂ်ႇတီႈသဵၼ်ႈမၢႆၵဝ်ၶႃႈ",
+       "tog-watchuploads": "ထႅမ်သႂ်ႇ ၾႆႇဢၼ်မႂ်ႇ ဢၼ်ၵဝ်ၶႃႈ လူတ်ႇၶိုၼ်ႈၸူး သဵၼ်ႈမၢႆတူၺ်း ၵဝ်ၶႃႈ",
+       "tog-watchrollback": "ထႅမ်သႂ်ႇ ၼႃးလိၵ်ႈသႂ်ႇၸူး သဵၼ်ႈမၢႆတူၺ်းၵဝ်ႇၵႃႈ တီႈဢၼ်ၶႃႈႁဵတ်မႃး လွင်ႈႁူၼ်ၶိုၼ်း",
+       "tog-minordefault": "မၵ်းမၢႆ ၶေႃႈထတ်းမႄးဢိတ်းဢွၼ်ႇ ၼင်ႇပိူင်ၵႅဝ်ႈ",
+       "tog-previewontop": "ၼႄပၼ် ၵၢၼ်တူၺ်းလူင်ႈၼႃႈ ဢွၼ်တၢင်းၶွင်ႉထတ်းမႄး",
+       "tog-previewonfirst": "ၼႄပၼ် ၵၢၼ်တူၺ်းလူင်ႈၼႃႈ တီႈၵၢၼ်ထတ်းမႄးဢွၼ်တၢင်းသုတ်း",
+       "tog-enotifwatchlistpages": "ပေႃးၼႃႈလိၵ်ႈ ဢမ်ႇၼၼ် ၾၢႆႇလ်ႇ ၼႂ်းသဵၼ်ႈမၢႆၵဝ်ၶႃႈ မီးလွင်ႈလႅၵ်ႈလၢႆႊၸိုင် သူင်ႇဢီးမဵလ်းၸူးၵဝ်ၶႃႈတႃႉ",
+       "tog-enotifusertalkpages": "ပေႃးၼႃႈလိၵ်ႈ ၵၢၼ်ဢုပ်ႇလၢတ်ႈၽူႈၸႂ်ႉတိုဝ်းႁင်းၵဝ်ၶႃႈ မီးလွင်ႈလႅၵ်ႈလၢႆႊၸိုင် သူင်ႇဢီးမဵလ်းၸူးၵဝ်ၶႃႈတႃႉ",
+       "tog-enotifminoredits": "လွင်ႈထတ်းမႄး ၼႃႈလိၵ်ႈလႄႈၾၢႆႇလ်ဢိတ်းဢီႈၵေႃႈ သူင်ႇဢီး​မေးလ်ၸူးၵဝ်ၶႃႈတႃႉ",
+       "tog-enotifrevealaddr": "ပိုတ်ႇၼႄပၼ် ႁဵင်းဢီးမဵလ်းၵဝ်ၶႃႈ တီႈလွင်ႈၾၢင်ႉတိူၼ်ဢီးမဵလ်း",
+       "tog-shownumberswatching": "ၼႄတၢင်းၼမ် ၵူၼ်းတူၺ်းလႄႈ",
+       "tog-oldsig": "လၢႆးမိုဝ်း ဢၼ်တိုၵ်ႉမီးဝႆႉ",
+       "tog-fancysig": "ႁဵတ်းႁႂ်ႈလၢႆးမိုဝ်း ပဵၼ်ၼင်ႇပိူင်ၾၢင်ဝီႇၶီႇ (လူၺ်ႈဢမ်ႇမီးၵွင်ႉဢၼ်ဝႅၼ်ႊ)",
+       "tog-uselivepreview": "ၸႂ်ႉတိုဝ်း ၵၢၼ်တူၺ်းလူင်ႈၼႃႈ ဢၼ်တူင်ႉဝႆ",
+       "tog-forceeditsummary": "ပေႃးဝႃႈ တီႈႁုဝ်ႁူပ်ႈမႄးထတ်းၼၼ်ႉ ဢမ်ႇသႂ်ႇသင်သေ ပဵၼ်လွၵ်းပဝ်ႇဝႆ့ၼႆ ပၼ်ၽၢင်ႉၶႃႈသေၵမ်း",
+       "tog-watchlisthideown": "လပ်ႉၵၢၼ်ထတ်းမႄးၵဝ်ၶႃႈ ၵႃႊတီႈသဵၼ်ႈမၢႆဝႆႉ",
+       "tog-watchlisthidebots": "သိူင်ႇ ၶေႃႈထတ်းၵဝ် တမ်ႈတီႈ သဵၼ်ႈပႂ်ႉတူၺ်း",
+       "tog-watchlisthideminor": "လပ်ႉၵၢၼ်ထတ်းမႄးဢိတ်းဢီႈ ၵႃႊတီႈသဵၼ်ႈမၢႆဝႆႉ",
+       "tog-watchlisthideliu": "လပ်ႉဝႆႉ ၵၢၼ်ထတ်းမႄး လူၺ်ႈၽူႈၸႂ်ႉတိုဝ်းဢၼ်ၶဝ်ႈဝႆႉ ၵႃႊတီႈသဵၼ်ႈမၢႆ",
+       "tog-watchlistreloadautomatically": "ပေႃးဝႃႈ တူဝ်ထွင်မီး လွင်ႈလႅၵ်ႈလၢႆႈၼႆ ၶိုၼ်းၽိုၼ်ႉပၼ် သဵၼ်ႈပႂ်ႉတူၺ်း ႁင်းမၼ်းလႄႈ။ (တေလူဝ်ႇ JavaScript)",
+       "tog-watchlisthideanons": "လပ်ႉဝႆႉ ၵၢၼ်ထတ်းမႄး လူၺ်ႈၽူႈၸႂ်ႉတိုဝ်းႁၢမ်းၸိုဝ်ႈ ၵႃႊတီႈသဵၼ်ႈမၢႆ",
+       "tog-watchlisthidepatrolled": "လပ်ႉဝႆႉ ၵၢၼ်ထတ်းမႄးဢၼ်ပႂ်ႉတူၺ်းဝႆႉၼၼ်ႉ ၵႃႊတီႈသဵၼ်ႈမၢႆ",
+       "tog-watchlisthidecategorization": "သိူင်ႇၼႃႈလိၵ်ႈ လွင်ႈပၢႆး-",
+       "tog-ccmeonemails": "သူင်ႇၽိုၼ်မိူၼ်ဢီးမဵလ်း ဢၼ်ၵဝ်ၶႃႈသူင်ႇၸူး ၽူႈၸႂ်ႉတိုဝ်းတၢင်ႇၵေႃႉၶဝ်",
+       "tog-diffonly": "ယႃႇပေၼႄ လွင်ႈၶဝ်ႈပႃးၼႂ်း ၼႃႈလိၵ်ႈ ၸွမ်းၼင်ႇ လွၵ်းၽၢႆႇတႂ်ႈၼႆႉ",
+       "tog-showhiddencats": "ပိုတ်ႇၼႄ လိူင်ႈ ဢၼ်လပ်ႉဝႆႉ",
+       "tog-norollbackdiff": "ဝၢႆးသေႁဵတ်း ႁူၼ်လင်ၶိုၼ်းယဝ်ႉၼႆ ယႃႇပေၼႄ လွၵ်း diff လႃႈ",
+       "tog-useeditwarning": "ပေႃးပႆႇလႆႈ ၵဵပ်းသိမ်းၼႃႈလိၵ်ႈ ဢၼ်ၶႃႈမူၼ်ႉမႄးဝႆႉသေ သင်ၸိူဝ်ႉဝႃႈ ၶႃႈဢွၵ်ႇၵႂႃႇၼႆ ၽၢင်ႉတိူၼ်ႇပၼ်ၶႃႈ သေၵမ်း",
+       "tog-prefershttps": "ၽွင်းၶဝ်ႈၸႂ်ႉတိုဝ်းၼၼ်ႉ ၸႂ်ႉတိုဝ်းၶွၼ်ႇၼႅၵ်ႉသျိၼ်ႇ ဢၼ်ႁူမ်ႇလူမ်ႈ",
+       "underline-always": "ၵူႊယၢမ်း",
+       "underline-never": "ဢမ်ႇႁဵတ်းသေပွၵ်ႈ",
+       "underline-default": "ပိူင်ၵႅဝ်ႈၾၢင်ႁၢင်ႊတၢင်းၼွၵ်ႈ ဢမ်ႇၼၼ် ပြၢဝ်းသိူဝ်ႇ",
+       "editfont-style": "ဢွင်ႈတီႈဢၼ်ထတ်းမႄး ဝႅပ်ႇယၢင်ႇၾွၼ်ႉ",
+       "editfont-default": "ပၵ်းၵဝ်ႇပိူင်ၵဝ်ႇပြၢဝ်းသိူဝ်ႇ",
+       "editfont-monospace": "ၾွၼ်ႉ မူဝ်ႇၼူဝ်သပဵတ်ႉ",
+       "editfont-sansserif": "ၾွၼ်ႉ San-serif",
+       "editfont-serif": "ၾွၼ်ႉဢၼ်သဵၼ်ႈတိူဝ်းၸႅင်ႈ",
+       "sunday": "ဝၼ်းဢႃးတိတ်ႉ",
+       "monday": "ဝၼ်းၸၼ်",
+       "tuesday": "ဝၼ်းဢင်းၵၢၼ်း",
+       "wednesday": "ဝၼ်းပုတ်ႉ",
+       "thursday": "ဝၼ်းၽတ်း",
+       "friday": "ဝၼ်းသုၵ်း",
+       "saturday": "ဝၼ်းသဝ်",
+       "sun": "တိတ်ႉ",
+       "mon": "ၸၼ်",
+       "tue": "ၵၢၼ်း",
+       "wed": "ပုတ်ႉ",
+       "thu": "ၽတ်း",
+       "fri": "သုၵ်း",
+       "sat": "သဝ်",
+       "january": "ၸၼ်ႇဝႃႇရီႇ",
+       "february": "ၾႅပ်ႇဝႃႇရီႇ",
+       "march": "မၢၶျ်ႉ",
+       "april": "ဢေႇပရႄႇ",
+       "may_long": "မေႇ",
+       "june": "ၵျုၼ်ႇ",
+       "july": "ၵျူႇလၢႆႇ",
+       "august": "ဢေႃးၵၢသ်ႉ",
+       "september": "သႅပ်ႇ​ထႅမ်ႇပႃႇ",
+       "october": "ဢွၵ်ႇ​ထူဝ်ႇ​ပႃႇ",
+       "november": "ၼူဝ်ႇ​ဝႅမ်ႇ​ပႃႇ",
+       "december": "တီႇသႅမ်ႇပႃႇ",
+       "january-gen": "ၸၼ်ႇဝႃႇရီႇ",
+       "february-gen": "ၾႅပ်ႇဝႃႇရီႇ",
+       "march-gen": "မၢၶျ်ႉ",
+       "april-gen": "ဢေႇပရႄႇ",
+       "may-gen": "မေႇ",
+       "june-gen": "ၵျုၼ်ႇ",
+       "july-gen": "ၵျူႇလၢႆႇ",
+       "august-gen": "ဢေႃးၵၢသ်ႉ",
+       "september-gen": "သႅပ်ႇ​ထႅမ်ႇပႃႇ",
+       "october-gen": "ဢွၵ်ႇ​ထူဝ်ႇ​ပႃႇ",
+       "november-gen": "ၼူဝ်ႇ​ဝႅမ်ႇ​ပႃႇ",
+       "december-gen": "တီႇသႅမ်ႇပႃႇ",
+       "jan": "ၸၼ်ႇ",
+       "feb": "ၾႅပ်ႇ",
+       "mar": "မၢၶျ်ႉ",
+       "apr": "ဢေႇ",
+       "may": "မေႇ",
+       "jun": "ၵျုၼ်ႇ",
+       "jul": "ၵျူႇ",
+       "aug": "ဢေႃး",
+       "sep": "သႅပ်ႇ",
+       "oct": "ဢွၵ်ႇ",
+       "nov": "ၼူဝ်ႇ",
+       "dec": "တီႇ",
+       "january-date": "ၸၼ်ႇဝႃႇရီႇ $1",
+       "february-date": "ၾႅပ်ႇဝႃႇရီႇ $1",
+       "march-date": "မၢၶျ်ႉ $1",
+       "april-date": "ဢေႇပရႄႇ $1",
+       "may-date": "လိူၼ်မေႇ $1",
+       "june-date": "လိူၼ်ၵျုၼ်ႇ $1",
+       "july-date": "လိူၼ်ၵျူႇလၢႆႇ $1",
+       "august-date": "လိူၼ်ဢေႃးၵၢသ်ႉ $1",
+       "september-date": "လိူၼ်သႅပ်ႇထႅမ်ႇပႃႇ $1",
+       "october-date": "လိူၼ်ဢွၵ်ႇထူဝ်ႇပႃႇ $1",
+       "november-date": "လိူၼ်ၼူဝ်ႇဝႅမ်ႇပႃႇ $1",
+       "december-date": "လိူၼ်တီႇသႅမ်ႇပႃႇ $1",
+       "period-am": "AM ပွတ်းၸဝ်ႉ",
+       "period-pm": "PM ပွတ်းလႃႈ",
+       "pagecategories": "{{PLURAL:$1|လိူင်ႈ|လိူင်ႈတင်းလၢႆ}}",
+       "category_header": "ၼႃႈလိၵ်ႈၼႂ်းလိူင်ႈ \"$1\"",
+       "subcategories": "ၵိင်ႇၽႄလိူင်ႈ",
+       "category-media-header": "သိုဝ်ႇၼႂ်းလိူင်ႈ \"$1\"",
+       "category-empty": "<em> လိူင်ႈဢၼ်ၼႆႉ ၸင်ႇၼႆႉ ဢမ်ႇမီးၼႃႈလိၵ်ႈ ဢမ်ႇၼၼ် သိုဝ်ႈဢီႈသင်ဝႆႉ</em>",
+       "hidden-categories": "{{PLURAL:$1|လိူင်ႈဢၼ်လပ်ႉဝႆႉ |လိူင်ႈၸိူဝ်း ဢၼ်လပ်ႉဝႆႉ}}",
+       "hidden-category-category": "လိူင်ႈ ဢၼ်လပ်ႉသိူင်ႇဝႆႉ",
+       "category-subcat-count": "{{PLURAL:$2|ၼႂ်းလိူင်ႈဢၼ်ၼႆႉ မီးၵိင်ႇၽႄလိူင်ႈၼႆႉ ၸိူင်ႉၼႆၵွၺ်း|ၼႂ်းလိူင်ႈၼႆႉ မီး This category has the following {{PLURAL:$1|ၵိင်ႇၽႄလိူင်ႈ|$1 ၵိင်ႇၽႄလိူင်ႈတင်းလၢႆး}}, ၼႂ်းၵႃႊ $2 တင်းသဵင်ႈတင်းမူတ်း}}",
+       "category-subcat-count-limited": "ၼႂ်းလိူင်ႈၼႆႉ မီးဝႆႉလိူင်ႈၼင်ႇၼႆ {{PLURAL:$1| ၵိင်ႇၽႄလိူင်ႈ |$1 ၵိင်ႇၽႄလိူင်ႈတင်းလၢႆ}}",
+       "category-article-count": "{{PLURAL:$2| လိူင်ႈဢၼ်ၼႆႉ ပႃးဝႆႉၼႃႈလိၵ်ႈၼင်ႇပႃႈတႂ်ႈၼႆႉၵွၺ်း |တၢင်းပႃႈတႂ်ႈၼႆႉ{{PLURAL:$1| ၼႃႈလိၵ်ႈ }} မီးၼႂ်းလိူင်ႈၼႆႉ ၵႃႊၼႂ်း $2 တင်းသဵင်ႈတင်းမူတ်း}}",
+       "category-article-count-limited": "တၢင်းပႃႈတႂ်ႈၼႆႉ  {{PLURAL:$1| ၼႃႈလိၵ်ႈ }} မီးၼႂ်းလိူင်ႈ တေႃႈလဵဝ်ၼႆႉ",
+       "category-file-count": "{{PLURAL:$2| လိူင်ႈဢၼ်ၼႆႉ ပႃးဝႆႉၼႃႈလိၵ်ႈၼင်ႇပႃႈတႂ်ႈၼႆႉၵွၺ်း |တၢင်းပႃႈတႂ်ႈၼႆႉ{{PLURAL:$1| ၾႆႇၼႆႉပဵၼ်|$1 ၾၢႆႇၸိူဝ်းၼႆႉပဵၼ် }} မီးၼႂ်းလိူင်ႈၼႆႉ ၵႃႊၼႂ်း $2 တင်းသဵင်ႈတင်းမူတ်း}}",
+       "category-file-count-limited": "ဢၼ်ပဵၼ် {{PLURAL:$1|ၾၢႆႇၼႆႉ|$1 ၾၢႆႇၸိူဝ်းၼႆႉ}} မီးဝႆႉတီႈၼႂ်း တွၼ်ႈၵၼ်ၼႆ့။",
+       "listingcontinuesabbrev": "သိုပ်ႇ",
+       "index-category": "ၼႃႈလိၵ်ႈ ၸိူဝ်းၸီ့ဝႆ့",
+       "noindex-category": "ၼႃႈလိၵ်ႈ ၸိူဝ်းၸီ့ဝႆ့",
+       "broken-file-category": "ၼႃႈလိၵ်ႈၸိူဝ်းမီးဝႆႉ ႁဵင်းၵွင်ႉၾၢႆႇဢၼ်လူ့လႅဝ်",
+       "about": "လွင်ႈတၢင်း",
+       "article": "ၼမ်းၼႂ်း",
+       "newwindow": "(ပိုတ်ႇၼင်ႇဝိၼ်းတူဝ်း ဢၼ်မႂ်ႇ)",
+       "cancel": "ဢမ်ႇႁဵတ်း",
+       "moredotdotdot": "ထႅင်ႈ...",
+       "morenotlisted": "သဵၼ်ႈမၢႆဢၼ်ၼႆႉ ဢမ်ႇတဵမ်ထူၼ်ႈ။",
+       "mypage": "ၼႃႈလိၵ်ႈ",
+       "mytalk": "တွၼ်ႈဢုပ်ႇ",
+       "anontalk": "တွၼ်ႈဢုပ်ႇ",
+       "navigation": "ၼႄတၢင်း",
+       "and": "&#32;လႄႈ",
+       "qbfind": "ႁႃ",
+       "qbbrowse": "ပိုတ်ႇႁႃ",
+       "qbedit": "မူၼ်ႉမႄး",
+       "qbpageoptions": "ၼႃႈလိၵ်ႈၼႆ့",
+       "qbmyoptions": "ၼႃႈလိၵ်ႈၵဝ်ၶႃႈ",
+       "faq": "ၶေႃႈထၢမ်ၵႆႉႁူပ်ႉ",
+       "faqpage": "Project:တွၼ်ႈတွင်ႈထၢမ်",
+       "actions": "ၵၢၼ်ႁဵတ်းသၢင်ႈ",
+       "namespaces": "ဢွင်ႈတီႈၸိုဝ်ႈ",
+       "variants": "လွင်ႈပႅၵ်ႇပိူင်ႈ",
+       "navigation-heading": "သဵၼ်ႈၵၢၼ်ၼႄတၢင်း",
+       "errorpagetitle": "ၽိတ်း",
+       "returnto": "ၶိုၼ်းဝၢႆႇၸူး $1.",
+       "tagline": "လုၵ်ႉတီႈ {{SITENAME}} မႃး",
+       "help": "ၸွႆႈထႅမ်",
+       "search": "ၶူၼ်ႉႁႃ",
+       "searchbutton": "ၶူၼ်ႉႁႃ",
+       "go": "သိုပ်ႇၵႂႃႇ",
+       "searcharticle": "သိုပ်ႇၵႂႃႇ",
+       "history": "ပိုၼ်းၼႃႈလိၵ်ႈ",
+       "history_short": "ပိုၼ်း",
+       "updatedmarker": "ပဵၼ်ဢၢပ်ႉတိတ်ႉဝႆႉ ၸဵမ်မိူဝ်ႈၶႃႈၵႂႃႇဢႅဝ်ႇၵမ်းလိုၼ်းသုတ်း",
+       "printableversion": "တွၼ်ႈတႃႇဢိတ်ႇဢွၵ်ႇ",
+       "permalink": "ႁဵင်းၵွင်ႉ မၼ်ႈၵိုမ်း",
+       "print": "ထုတ်ႇဢွၵ်ႇ",
+       "view": "လူတူၺ်း",
+       "view-foreign": "တူၺ်းတီႈ $1",
+       "edit": "မူၼ်ႉမႄး",
+       "edit-local": "မႄးထတ်း ၶေႃႈသပ်းလႅင်းလူဝ်ႇၵႄႇ",
+       "create": "သၢင်ႈ",
+       "create-local": "ထႅမ်သႂ်ႇ ၶေႃႈသပ်းလႅင်းလူဝ်ႇၵႄႇ",
+       "editthispage": "မူၼ်ႉမႄး ၼႃႈလိၵ်ႈၼႆႉ",
+       "create-this-page": "သၢင်ႈ ၼႃႈလိၵ်ႈၼႆႉ",
+       "delete": "ယႃႉ",
+       "deletethispage": "ယႃႉ ၼႃႈလိၵ်ႈၼႆႉ",
+       "undeletethispage": "ဢဝ်ၶိုၼ်း ၼႃႈလိၵ်ႈၼႆ့",
+       "undelete_short": "ဢဝ်ၶိုၼ်း {{PLURAL:$1|ဢၼ် ထတ်းသၢင်ႈ |$1 ၸိူဝ်းထတ်းသၢင်ႈ}}",
+       "viewdeleted_short": "တူၺ်း {{PLURAL:$1|လွင်ႈထတ်းသၢင်ႈ ဢၼ်မွတ်ႇပႅတ်ႈ|$1 ၸိူဝ်းထတ်းသၢင်ႈ ဢၼ်မွတ်ႇပႅတ်ႈ}}",
+       "protect": "ႁေႉၵင်ႈ",
+       "protect_change": "လႅၵ်ႈလၢႆႈ",
+       "protectthispage": "ႁေႉၵင်ႈ ၼႃႈလိၵ်ႈၼႆႉ",
+       "unprotect": "လႅၵ်ႈလၢႆႊ ၵၢၼ်ႁေႉၵင်ႈ",
+       "unprotectthispage": "လႅၵ်ႈလၢႆႊ ၵၢၼ်ႁေႉၵင်ႈ ၼႃႈလိၵ်ႈၼႆႉ",
+       "newpage": "ၼႃႈလိၵ်ႈမႂ်ႇ",
+       "talkpage": "ဢုပ်ႇလိူၺ်ႈ ၼႃႈလိၵ်ႈၼႆႉ",
+       "talkpagelinktext": "တွၼ်ႊဢုပ်ႇ",
+       "specialpage": "ၼႃႈလိၵ်ႈ ၶိုၵ်ႉတွၼ်း",
+       "personaltools": "ၶိူင်ႈ​သုၼ်ႇ​လဵ​ဝ်",
+       "articlepage": "တူၺ်း ၼႃႈလိၵ်ႈ ၼမ်းၼႂ်း",
+       "talk": "တႃႇဢုပ်ႇ",
+       "views": "လူတူၺ်း",
+       "toolbox": "ၶိူင်ႈၵမ်ႉၵႅမ်",
+       "userpage": "တူၺ်းၼႃႈလိၵ်ႈၽူႈၸႂ်ႉတိုဝ်း",
+       "projectpage": "တူၺ်းၼႃႈလိၵ်ႈ ပရေႃးၵျႅၵ်ႉ",
+       "imagepage": "တူၺ်းၼႃႈလိၵ်ႈၾၢႆႇ",
+       "mediawikipage": "တူၺ်းၼႃႈလိၵ်ႈ ၶေႃႈၶၢဝ်ႇ",
+       "templatepage": "တူၺ်းၼႃႈလိၵ်ႈ လွၵ်းပိူင်",
+       "viewhelppage": "တူၺ်းၼႃႈလိၵ်ႈ ၸွႆႈထႅမ်",
+       "categorypage": "တူၺ်းၼႃႈလိၵ်ႈထၢၼ်ႈ",
+       "viewtalkpage": "တူၺ်း တွၼ်ႈဢုပ်ႇဢူဝ်း",
+       "otherlanguages": "ၼႂ်း​လိၵ်ႈ​တၢင်ႇဢၼ်",
+       "redirectedfrom": "(လုၵ်ႉတီး $1 ၼႆႈသေ ၶိုၼ်းပိၼ်ႇဝၢႆႇမႃး)",
+       "redirectpagesub": "ပိၼ်ႇႁူဝ်ၼႃႈလိၵ်ႈ",
+       "redirectto": "ဝိၼ်ႇၵႂႃႇၸူး:",
+       "lastmodifiedat": "ၼႃႈ​လိၵ်ႈၼႆ့ မႄး​ဝႆႉ ၼင်ႇ​ၵမ်း​လိုၼ်း​သုတ်း မိူဝ်ႈ ဝၼ်း​တီႈ $1 ၶၢဝ်းယၢမ်း $2",
+       "viewcount": "ၼႃႈလိၵ်ႈၼႆႉ ထုၵ်ႇၸႂ်ႉဝႆႉ {{PLURAL:$1|ပွၵ်ႈၼိုင်ႈ|$1 ၵမ်း}}.",
+       "protectedpage": "ၼႃးလိၵ်ႈ ဢၼ်ႁႄႉၵင်ႈဝႆႉ",
+       "jumpto": "ၶၢမ်ႈၸူး :",
+       "jumptonavigation": "ၼႄတၢင်း",
+       "jumptosearch": "ၶူၼ်ႉႁႃ",
+       "view-pool-error": "ၵဵင်ၸႂ်ယူႇ​ၶႃႈ၊ သႃႇပိူဝ်ႁဝ်း ထုၵ်ႇလႆႈၸႂ်ႉႁၢဝ်ႈႁႅင်းဝႆႉ ယၢမ်းလဵဝ်။\nယွၼ်ႉပိူဝ်ႈဝႃႈ ၽူႈၸႂ်ႉတိုဝ်းတၢင်းၼမ်တၢင်းလၢႆ တိုၵ်ႉၽွမ်ႉၵၼ် ၶဝ်ႈတူၺ်း ၼႃႈလိၵ်ႈၼႆ့။\nၶႅၼ်းတေႃႈ ပႂ်ႉပၼ်ၵမ်းၼိုင်ႈသေ ၸွင်ႇၵွႆႈၶိုၼ်း ပိုတ်ႇတူၺ်း ၼႃႈလိၵ်ႈၼႆႉၶႃႈ။\n\n$1",
+       "generic-pool-error": "ၵဵင်ၸႂ်ယူႇ​ၶႃႈ၊ သႃႇပိူဝ်ႁဝ်း ထုၵ်ႇလႆႈၸႂ်ႉႁၢဝ်ႈႁႅင်းဝႆႉ ယၢမ်းလဵဝ်။\nယွၼ်ႉပိူဝ်ႈဝႃႈ ၽူႈၸႂ်ႉတိုဝ်းတၢင်းၼမ်တၢင်းလၢႆ တိုၵ်ႉၽွမ်ႉၵၼ် ၶဝ်ႈတူၺ်း ငဝ်ႈငႃႇၼႆ့။\nၶႅၼ်းတေႃႈ ပႂ်ႉပၼ်ၵမ်းၼိုင်ႈသေ ၸွင်ႇၵွႆႈၶိုၼ်း ပိုတ်ႇတူၺ်း ငဝ်ႈငႃႇၼႆႉၶႃႈ။",
+       "pool-timeout": "ၶၢဝ်းယၢမ်းသုတ်းသဵင်ႈ ဢၼ်ပႂ်ႉတႃႇပိုတ်ႇသေႃး",
+       "pool-queuefull": "ၼွင်ၸႅၼ်ႇထႅဝ် တဵမ်ဝႆႉဢေႃႈ။",
+       "pool-errorunknown": "ဢမ်ႇႁူ့ ၵၢၼ်ၽိတ်ႈပိူင်ႈ",
+       "pool-servererror": "ဢၼ်ပဵၼ်ၼႃႈၵၢၼ် တူဝ်ဢၢၼ်ႇၼွင်ၼၼ်ႉ မၼ်းဢမ်ႇႁဵတ်းၵၢၼ် ($1).",
+       "poolcounter-usage-error": "ၵၢၼ်ၸႂ်ႉၸိုဝ်း ၽိတ်းပိူင်ႈ: $1",
+       "aboutsite": "လွင်ႈ​တၢင်း {{SITENAME}}",
+       "aboutpage": "Project: လွင်ႈဝႅပ်ႉသႆႉ",
+       "copyright": "ၸိူဝ်းၶဝ်ႈပႃးဝႆႉၼႆႉ မၼ်းတေၸၢင်ႈၸႂ်ႉလႆႈ ၵႃႈတီႈ ဝႂ် $1",
+       "copyrightpage": "{{ns:project}}:သုၼ်ႇထုတ်ႇ",
+       "currentevents": "ၵၢၼ်ႁဵတ်းသၢင်ႈယၢမ်းလဵဝ်",
+       "currentevents-url": "Project:ၵၢၼ်ႁဵတ်းသၢင်ႈ ယၢမ်းလဵဝ်",
+       "disclaimers": "ၶေႃႈထဵင်",
+       "disclaimerpage": "Project:ၵၢၼ်ထဵင်ၶိုၼ်းၵူႈလွင်ႈလွင်ႈ",
+       "edithelp": "မႄးထတ်းၵၼ်ၸွႆႈထႅမ်",
+       "helppage-top-gethelp": "ၸွႆႈထႅမ်",
+       "mainpage": "ၼႃႈႁူဝ်ႁႅၵ်ႈ",
+       "mainpage-description": "ၼႃႈႁူဝ်ႁႅၵ်ႈ",
+       "policy-url": "Project:လၢႆးငၢၼ်း",
+       "portal": "ၽွတ်ႇတိူဝ်ႇ တူင်ႇဝိူင်း",
+       "portal-url": "Project:ၽွတ်ႇတိူဝ်ႇ တူင်ႇဝိူင်း",
+       "privacy": "လၵ်း​ၼမ်း လွင်ႈ​ႁူမ်ႇ​လူမ်ႈ သုၼ်ႇ​လဵဝ်",
+       "privacypage": "Project:လၵ်း​ၼမ်း လွင်ႈ​ႁူမ်ႈ​လူမ်ႈ သုၼ်ႇ​လဵဝ်",
+       "badaccess": "ၵၢၼ်လူတ်းပွႆႇ ၽိတ်းပိူင်ႈ",
+       "badaccess-group0": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇထုၵ်ႇၶႂၢင်းပၼ်တႃႇတေၸႂ်ႉ လွင်ႈႁဵတ်းသၢင်ႈ ဢၼ်ၸဝ်ႈၵဝ်ႇ တုၵ်းယွၼ်းဝႆႉၼၼ်ႉ။",
+       "badaccess-groups": "လွင်ႈႁဵတ်သၢင်ႈ ဢၼ်ၸဝ်ႈၵဝ်ႇ တုၵ်းယွၼ်းဝႆႉၼၼ်ႉ မၼ်းထုၵ်ႇ မၵ်းၶႅၼ်ႈဝႆႉတႃႇ ၽူႈၸႂ်ႉတိုဝ်းၶဝ် တီႈၼႂ်း  {{PLURAL:$2|ၸုမ်း |ၸုမ်းၸိူဝ်းၼႆႉ}}: $1.",
+       "versionrequired": "တေလူဝ်ႇ ပိူဝ်းသျိၼ်း မၢႆဢွၵ်ႇ ဝီႇၶီႇမီႇတီႇယႃႇ $1",
+       "versionrequiredtext": "တႃႇတေၸႂ်ႉ ၼႃႈလိၵ်ႈၼႆ့ၼႆ တေလူဝ်ႇ ပိူဝ်းသျိၼ်း မႆဢွၵ်ႇ ဝီႇၶီႇမီႇတီႇယႃႇ $1  ဢေႃႈ။ တူၺ်းပႃး [[Special:Version|ၼႃးလိၵ်ႈ မၢႆဢွၵ်ႇ]].",
+       "ok": "ဢူဝ်ႇၶေႇ",
+       "retrievedfrom": "ဢဝ်ၶိုၼ်းမႃးတီႈ \"$1\"",
+       "youhavenewmessages": "{{PLURAL:$3|ၸဝ်ႈၵဝ်ႇ လႆႈႁပ်ႉဝႆႉ}} $1 ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|ၸဝ်ႈၵဝ်ႇလႆႈႁပ်ႉဝႆႉ}} $1 ၵႃႈတီႈ {{PLURAL:$3|ၽူႈၸႂ်ႉတိုဝ်း တၢင်ႇၵေႃႉ |$3 ၽူႈၸႂ်ႉတိုဝ်း တၢင်ႇၸိူဝ်း}} ($2).",
+       "youhavenewmessagesmanyusers": "ၸဝ်ႈၵဝ်ႇလႆႈႁၢပ်ႉဝႆႉ $1 ၵႃႈတီႈၽူႈၸႂ်ႉတိုဝ်းတၢင်းၼမ် ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|ၶေႃႈၶၢဝ်ႇမႂ်ႇ|999=ၶေႃႈၶၢဝ်ႇမႂ်ႇ}}",
+       "newmessagesdifflinkplural": "ဢၼ် {{PLURAL:$1|လႅၵ်ႈလၢႆႈ|999=လႅၵ်ႈလၢႆႈ}} ၵမ်းလိုၼ်းသုတ်း",
+       "youhavenewmessagesmulti": "ၸဝ်ႈၵဝ်ႇႁပ်ႉလႆႈၶေႃႈၶၢဝ်ႇမႂ်ႇ ၵႃႈတီႈ $1",
+       "editsection": "မူၼ်ႉမႄး",
+       "editold": "မူၼ်ႉမႄး",
+       "viewsourceold": "တူၺ်း ငဝ်ႈငႃႇ",
+       "editlink": "မႄးထတ်း",
+       "viewsourcelink": "တူၺ်း ငဝ်ႈငႃႇ",
+       "editsectionhint": "မူၼ်ႉမႄး တွၼ်ႊ :$1",
+       "toc": "ၼမ်းၼႂ်း",
+       "showtoc": "ၼႄ",
+       "hidetoc": "သိူင်ႇ",
+       "collapsible-collapse": "တူပ်ႉဝႆႉ",
+       "collapsible-expand": "ၽႄႇၼေ",
+       "confirmable-confirm": "ၸွင်ႇ {{GENDER:$1|ၸဝ်ႈၵဝ်ႇ}} လပ်ႉလွင်းႁိုဝ်?",
+       "confirmable-yes": "ၸႂ်ႈယဝ်ႉ",
+       "confirmable-no": "ဢမ်ႇ",
+       "thisisdeleted": "တူၺ်း ဢမ်ႇၼၼ် ၶိုၼ်းဢဝ် $1?",
+       "viewdeleted": "တေတူၺ်း $1 ၼေ?",
+       "restorelink": "တူၺ်း {{PLURAL:$1|လွင်ႈထတ်းသၢင်ႈ ဢၼ်မွတ်ႇပႅတ်ႈ|$1 ၸိူဝ်းထတ်းသၢင်ႈ ဢၼ်မွတ်ႇပႅတ်ႈ}}",
+       "feedlinks": "ၶၢဝ်ႇၶီး:",
+       "feed-invalid": "လိူင်ႈၶၢဝ်ႇၶီး ဢၼ်ဢၢၼ်းဢဝ်ၼႆႉ ၽိတ်းပိူင်ႈဝႆႉ",
+       "feed-unavailable": "ၶၢဝ်ႇၶီးတႃႇ ၸုမ်းႁူမ်ႈသၢင်ႈၼၼ်ႉ ဢမ်ႇပႆႇၸႂ်ႉလႆႈ။",
+       "site-rss-feed": "$1 ၶၢဝ်ႇၶီး RSS",
+       "site-atom-feed": "ၾိတ်ႉဢတွမ်ႊ $1 ဢၼ်",
+       "page-rss-feed": "\"$1\" ၶၢဝ်ႇၶီး RSS",
+       "page-atom-feed": "ၾိတ်ႉဢတွမ်ႊ $1 ဢၼ်",
+       "red-link-title": "ၼႃႈလိၵ်ႈ $1 ၼႆႉ ဢမ်ႇမီးယဝ်ႉ",
+       "sort-descending": "ၶပ်ႉတၢမ်းလူင်း",
+       "sort-ascending": "ၶပ်ႉတၢမ်းၶိုၼ်ႈ",
+       "nstab-main": "ၼႃႈလိၵ်ႈ",
+       "nstab-user": "ၼႃႈလိၵ်ႈ ၽူႈၸႂ်ႉတိုဝ်း",
+       "nstab-media": "ၼႃႈလိၵ်ႈ သိုဝ်ႇၶၢဝ်ႇ",
+       "nstab-special": "ၼႃႈလိၵ်ႈ ၶိုၵ်ႉတွၼ်း",
+       "nstab-project": "ၼႃႈလိၵ်ႈ ၶူင်းၵၢၼ်",
+       "nstab-image": "ၾၢႆႇ",
+       "nstab-mediawiki": "ၶေႃႈၽၢၵ်ႇ",
+       "nstab-template": "ပိူင်",
+       "nstab-help": "ၼႃႈလိၵ်ႈ ၸွႆႈထႅမ်",
+       "nstab-category": "လိူင်ႈ",
+       "mainpage-nstab": "ၼႃႈႁူဝ်ႁႅၵ်ႈ",
+       "nosuchaction": "ဢမ်ႇမီး လွင်ႈတူင်ႉၼိုင်",
+       "nosuchactiontext": "လွင်ႈတူင်ႉၼိုင်ဢၼ် URL မၵ်းမၼ်ႈဝႆႉၼၼ်ႉ မၼ်းဢမ်ႇမီးဝႆႉ။\n ၸဝ်ႈၵဝ်ႇတေပေႃႉ URL မၼ်းၽိတ်းဝႆႉ ဢမ်ႇၼၼ် လႆႈၸွမ်းဝႆႉ ႁဵင်းၵွင်ႉ ဢၼ်ၽိတ်းဝႆ့။ ပေႃးၸႂ်ႉ  {{SITENAME}} ၼႆ မၼ်းတေၸီ့ၼႄပၼ် ၶေႃႈယုင်ႈယၢင်ႈ တီႈၼႂ်း သွပ်ႉၾ်ဝႄးယူႇ။",
+       "nosuchspecialpage": "ဢမ်ႇမီး ၼႃႈလိၵ်ႈၶိုၵ်ႉတွၼ်း",
+       "nospecialpagetext": "<strong>ၸဝ်ႈၵဝ်ႇ တုၵ်းယွၼ်းဝႆႉ ၼႃႈလိၵ်ႈၶိုၵ်ႉတွၼ်း ဢၼ်ဢမ်ႇပႆႇမီး</strong>\n\nသဵၼ်ႈမၢႆ ၼႃႈလိၵ်ႈၶိုၵ်ႉတွၼ်း ၸိူဝ်းဢၼ်ၸၢင်ႈဢဝ်လႆႈၼႆႉ တေလႆႈႁၼ်ၵႃႈတီႈ [[Special:SpecialPages|{{int:specialpages}}]].",
+       "error": "ၽိတ်းပိူင်ႈ",
+       "databaseerror": "ယွင်ၶေႃႈမုၼ်း ၽိတ်းပိူင်ႈ",
+       "databaseerror-text": "လႆႈပဵၼ်ဝႆႉ လွင်ႈၽိတ်းပိူင်ႈ ၵၢၼ်ၶူၼ်ႉႁႃ ယွင်ၶေႃႈမုၼ်း ။ ၼႆႉမၼ်းတေ ၼႄပၼ် လွင်ႈယုင်ႈယၢင်ႈ ၵႃႈတီႈၼႂ်း သွပ်ႉၾ်ဝႄး",
+       "databaseerror-textcl": "ၵၢၼ်ၶူၼ်ႉႁႃ ယွင်ၶေႃႈမုၼ်း လႆႈပဵၼ် လွင်ႈၽိတ်းပိူင်ႈဝႆႉ။",
+       "databaseerror-query": "ၶူၼ်ႉႁႃ : $1",
+       "databaseerror-function": "ၼႃႈၵၢၼ် : $1",
+       "databaseerror-error": "လွင်ႈၽိတ်းပိူင် : $1",
+       "transaction-duration-limit-exceeded": "တႃတေဝႄႈလႆႈ လွင်ႈသၢင်ႈၼႃႈလိၵ်ႈ မႃးမိူၼ်ၵၼ်ၼၼ်ႉ ၵၢၼ်လၢႆႈတီႈဢၼ်ၼႆႉ ထုၵ်ႇၵိုတ်းယင်ႉပႅတ်ႈ၊ ယွၼ်ႉပိူဝ်ႈဝႃႈ ၶၢဝ်းယၢမ်းတႅမ်ႈ ($1) ၼႆႉ မၼ်းပူၼ်ႉလိူဝ်သေ $2 {{PLURAL:$2|ၸႅတ်ႉၵၢၼ်ႉ|ၸႅတ်ႉၵၢၼ်ႉလိူဝ်}} ဢၼ်မၵ်းၶႅၼ်ႈဝႆႉ။\nသင်ၸိူဝ်ႉဝႃႈ ၸဝ်ႈၵဝ်ႇ လႅၵ်ႈလၢႆႈလၢႆဢၼ်ႁူမ်ႈမိူဝ်ႈလဵဝ်ၵၼ်ၼႆ၊ ၶႂ်ႈႁႂ်ႈၶတ်းၸႂ်ႁဵတ်းတူၺ်း တင်း multiple smaller operation ဢေႃႈ။",
+       "laggedslavemode": "<strong>ၶေႃႈၽၢင်ႉ:</strong>ၼႃႈလိၵ်ႈ တေဢမ်ႇဢၢပ်ႈၶဝ်ႈပႃး ဢၢပ်ႉတိတ်ႉ",
+       "readonly": "ယွင်ၶေႃႈမုၼ်း ထုၵ်ႇၶတ်းဝႆႉ",
+       "enterlockreason": "ပေႃႉသႂ်ႇပၼ် လွင်ႈတၢင်းတႃႇ တေၶတ်းဝႆႉ၊ ႁႂ်ႈပႃးပၼ် ၸဵမ်ၶၢဝ်းယၢမ်း လၢမ်းဢၼ်ဝႃႈ လွင်ႈၶတ်းဝႆႉၼႆႉ တေဢၢပ်ႈၶိုၼ်းပိုတ်ႇပၼ် မိူဝ်ႈလႂ် ဢၼ်ဝႃႈၼၼ်ႉ။",
+       "readonlytext": "ယွင်ၶေႃႈမုၼ်းၼႆႉ ယၢမ်းလဵဝ် ထုၵ်ႇၶတ်းဝႆႉတႃႇ တေထႅမ်သႂ်ႇဢၼ်မႂ်ႇ လႄႈ တႃႇမူၼ်ႉမႄး တၢင်ႇလွင်ႈတၢင်ႇၸိူဝ်း၊ မၼ်းတေဢၢပ်ႈပဵၼ်လူၺ်ႈ လွင်ႈဝႃႈ တိုၵ်ႉမူၼ်ႉမႄး ယွင်ၶေႃႈမုၼ်း ၼင်ႇၵႆႉႁဵတ်း။ ဝၢႆးသေၼၼ်ႉတႄႉ တေၶိုၼ်းႁဵတ်းၵၢၼ် မိူၼ်ၵဝ်ႇယူႇ။\n\nဢၼ်ပဵၼ် ၽူႈၵုမ်းၵမ်ပိူင်ႈသၢင်ႈ ၵေႃႉဢၼ်လႆႈ ၶတ်းၼႆႉဝႆႉၼၼ်ႉ မၼ်းပၼ်လွင်ႈသပ်းလႅင်းဝႆႉဝႃႈ : $1",
+       "missing-article": "ယွင်ၶေႃႈမုၼ်း ဢမ်ႇသွၵ်ႈႁႃႁၼ်လႆႈ ၽိုၼ်ၼႃႈလိၵ်ႈ ဢၼ်ထုၵ်ႇလီသွၵ်ႈထူပ်းႁၼ် ဢၼ်မီးၸိုဝ်ႈဝႃႈ \"$1\" $2 ။\n\nၼႆႉမၼ်းဢၢပ်ႈပဵၼ်ဝႆႉ ဢၼ်ၸိူဝ်းၼၼ်ႉ မၼ်းၵဝ်ႇၵႄႇၼႃႇလႄႈသင် ဢၼ်ပဵၼ် ပိုၼ်းႁဵင်းၵွင်ႉ ၸူးၼႃႈလိၵ်ႈၼၼ်ႉ ထုၵ်ႇမွတ်ႇပႅတ်ႈယဝ်ႉလႄႈသင် ​ၼႆဢေႃႈ။\n\nပေႃးဢမ်ႇၸႂ်ၸိူင်ႉၼၼ်တႄႉ ၸဝ်ႈၵဝ်ႇ တေလႆႈႁၼ် လွင်ႈယုင်ႈယၢင်ႈၼႆႉ တေၼႄဝႆႉ တီႈၼႂ်း သွပ်ႉၾ်ဝႄး ယူႇ။\nၶႅၼ်းတေႃႈ လဝ်ႈထိုင်ၼႆႉၸူး ၵႃႈတီႈ  [[Special:ListUsers/sysop|administrator]] သေ မၢႆတွင်းဝႆႉပႃး ႁဵင်းလိၵ်ႈ URL မၼ်းသေၶႃႈလႄႈ။",
+       "missingarticle-rev": "(ၵၢၼ်ၶူၼ်ႉၶိုၼ်း#: $1)",
+       "missingarticle-diff": "(ၼိူင်း: $1, $2)",
+       "readonly_lag": "ယွင်ၶေႃႈမုၼ်းၼႆႉ မၼ်းထုၵ်ႇၶတ်းၵႂႃႇ ႁင်းမၼ်း ၽွင်းမိူဝ်ႈ သႃႇပိူဝ်ႇယွင်ၶေႃႈမုၼ်း ဢၼ်ၵႅမ်မၼ်း ထုၵ်ႇတီႉၸပ်းၸူး သႃႇပိူဝ်ႇ​ယွင်ၶေႃႈမုၼ်း ငဝ်ႈမၼ်း။",
+       "nonwrite-api-promise-error": "ဢၼ်ပဵၼ်​ႁူဝ်ၶေႃႈ HTTP ၼင်ႇ 'Promise-Non-Write-API-Action' ၼၼ်ႉထုၵ်ႇ သူင်ႇၸူးယဝ်ႉသေတႃႉ လွင်ႈတုၵ်းယွၼ်း မၼ်းတႄႉ တိုၵ်ႉမီးယူႇတီႈ API write module ။",
+       "internalerror": "ၽိတ်းၽၢႆႇၼႂ်း",
+       "internalerror_info": "ၽိတ်းပိူင်ႈၽၢႆႇၼႂ်း : $1",
+       "internalerror-fatal-exception": "လွင်ႈတၢင်း လွင်ႈလူႉလႅဝ် ၶွင်လိူင်ႈ \"$1\"",
+       "filecopyerror": "ဢမ်ႇၸၢင်ႈထုတ်ႇဢဝ် ၾၢႆႇ \"$1\" ၸူး \"$2\".",
+       "filerenameerror": "ဢမ်ႇၸၢင်ႈမႄးလၢႆႈၸိုဝ်ႈ \"$1\" ၸူး \"$2\".",
+       "filedeleteerror": "ဢမ်ႇၸၢင်ႈမွတ်ႇပႅတ်ႈ ၾၢႆႇ \"$1\".",
+       "directorycreateerror": "ဢမ်ႇၸၢင်ႈသၢင်ႈ ၾူဝ်ႇတႃႇဢွင်ႈသိမ်း \"$1\".",
+       "directoryreadonlyerror": "ၾူဝ်ႇတႃႇဢွင်ႈသိမ်း \"$1\" ၼႆႉပဵၼ် တႃႇလူႇၵူၺ်း။",
+       "directorynotreadableerror": "ၾူဝ်ႇတႃႇဢွင်ႈသိမ်း \"$1\" ၼႆႉ လူဢမ်ႇလႆႈ။",
+       "filenotfound": "ဢမ်ႇၸၢင်ႈသွၵ်ႈႁႃၾၢႆႇ \"$1\"",
+       "unexpected": "မၢႆၶၼ် ဢၼ်ဢမ်ႇမုင်ႈမွင်းဝႆႉ \"$1\"=\"$2\".",
+       "formerror": "လွင်ႈၽိတ်းပိူင်ႈ : ဢမ်ႇၸၢင်ႈယိုၼ်ႈသူင်ႇ ၽိုၼ်တမ်း",
+       "badarticleerror": "လွင်ႈႁဵတ်းသၢင်ႈ ဢၼ်ၼႆႉ တေဢမ်ႇၸၢင်ႈ ႁဵတ်းလႆႈ တီႈ ၼႃႈလိၵ်ႈၼႆႉ။",
+       "cannotdelete": "ၼႃႈလိၵ်ႈ ဢမ်ႇၼၼ် ၾၢႆႇ \"$1\" ၼႆႉ ဢမ်ႇၸၢင်ႈ မွတ်ႇပႅတ်ႈလႆႈ။\nမၼ်းဢၢပ်ႈပဵၼ် ၵူၼ်းသေၵေႃႉၵေႃႉ မွတ်ႇပႅတ်ႈၵႂႃႇယဝ်ႉ။",
+       "cannotdelete-title": "ဢမ်ႇၸၢင်ႈ မွတ်ႇပႅတ်ႈ ၼႃႈ လိၵ်ႈ \"$1\"",
+       "delete-hook-aborted": "လွင်ႈမွတ်ႇပႅတ်ႈ ထုၵ်ႇ ၵိုတ်းပႅတ်ႈ။\nမၼ်းဢမ်ႇမီး လွင်ႈ သပ်းလႅင်းၼႄသင်ဝႆႉ။",
+       "no-null-revision": "ဢမ်ႇၸၢင်ႈၵေႃႇသၢင်ႈ တူဝ်ၶူၼ်ႉၶိုၼ်းပဝ်ႇမႂ်ႇ တွၼ်ႈတႃႇ ၼႃႈလိၵ်ႈ \"$1\"",
+       "badtitle": "ႁူဝ်ၶေႃႈႁၢႆႉၸႃႉ",
+       "badtitletext": "ႁူဝ်ၶေႃႈ ၼႃႈလိၵ်ႈဢၼ် တုၵ်းယွၼ်းဝႆႉၼႆႉ မၼ်းဢမ်ႇၸႂ်ႉလႆႈ၊ ပဝ်ႇဝႆ့ ဢမ်ႇၼၼ် မၼ်းၵွင်ႉၽိတ်းပိူင်ႈဝႆႉတင်း ၽႃႇသႃႇၵႂၢမ်းတၢင်ႇဢၼ် ဢမ်ႇၼၼ် ႁူဝ်ၶေႃႈၼႂ်းၼႃႈလိၵ်ႈ ဝီႇၶီႇၼႆ့။",
+       "title-invalid-empty": "ၼႃႈလိၵ်ႈဢၼ်တုၵ်းယွၼ်းမႃးၼၼ်ႉ မၼ်းဢမ်ႇပႃးဝႆႉႁူဝ်ၶေႃႈမၼ်း ဢမ်ႇၼၼ် မၼ်းတေပႃးဝႃႈ ၸိုဝ်ႈဢၼ်ပဵၼ် လွၵ်းပဝ်ႇဝႆႉၼၼ်ႉၵူၺ်း။",
+       "title-invalid-utf8": "ႁူဝ်ၶေႃႈ ၼႃႈလိၵ်ႈ ဢၼ်တုၵ်းယွၼ်းဝႆႉၼႆႉ မၼ်းပႃးဝႆႉ သၢႆသဵၼ်ႈ UTF-8 ဢၼ်ဢမ်ႇပဵၼ်လႆႈ။",
+       "title-invalid-interwiki": "ႁူဝ်ၶေႃႈ ၼႃႈလိၵ်ႈ ဢၼ်တုၵ်းယွၼ်းမႃးၼၼ်ႉ မၼ်းပႃးဝႆႉ ႁဵင်းၵွင်ႉ တူဝ်ၼႂ်းဝီႇၶီႇ ဢၼ်ဢမ်ႇၸၢင်ႈဢဝ်ၸႂ်ႉလႆႈ တႃႇႁူဝ်ၶေႃႈ။",
+       "title-invalid-talk-namespace": "ႁူဝ်ၶေႃႈၼႃႈလိၵ်ႈ ဢၼ်တုၵ်းယွၼ်းမႃးၼၼ်ႉ မၼ်းမၢႆထိုင်ၸူး ၼႃႈလိၵ်ႈဢုပ်ႇဢူဝ်း ဢၼ်ဢမ်ႇၸၢင်ႈ မီးလႆႈၼၼ်ႉ။",
+       "title-invalid-characters": "ႁူဝ်ၶေႃႈ ၼႃႈလိၵ်ႈ ဢၼ်တုၵ်းယွၼ်းမႃးၼၼ်ႉ မၼ်းၶဝ်ႈပႃးဝႆႉ တူဝ်လိၵ်ႈ ဢၼ်ဢမ်ႇ ၸႂ်ႉလႆႈ : \"$1\"",
+       "viewsource": "တူၺ်း ငဝ်ႈငႃႇ",
+       "viewsource-title": "တူၺ်းငဝ်ႈငႃႇ တွၼ်ႈတႃႇ $1",
+       "protectedpagetext": "ၼႃႈလိၵ်ႈၼႆႉ ထုၵ်ႇႁႄႉၵင်ႈဝႆႉ တႃႇၵႅတ်ႇၶႄ လွင်ႈမူၼ်ႉမႄး ဢမ်ႇၼၼ် လွင်ႈႁဵတ်းသၢင်ႈ တၢင်ႇၸိူဝ်း",
+       "viewsourcetext": "ၸဝ်ႈၵဝ်ႇ ၸၢင်ႈတူၺ်း သေ ထုတ်ႇဢဝ်လႆႈ ငဝ်ႈငႃႇ တႃႇၼႃႈလိၵ်ႈၼႆႉ",
+       "viewyourtext": "ၸဝ်ႈၵဝ်ႇ ၸၢင်ႈတူၺ်းသေ ထုတ်ႇဢဝ်လႆႈ ငဝ်ႈငႃႇ တွၼ်ႈတႃႇ <strong>လွင်ႈမႄးထတ်းၸဝ်ႈၵဝ်ႇ</strong> ၸူး ၼႃႈလိၵ်ႈၼႆႉ",
+       "translateinterface": "တႃႇတေထႅမ်သႂ်ႇ ဢမ်ႇၼၼ် မႄး​လႅၵ်ႈလၢႆႈ လွင်ႈပိၼ်ႇၽႃႇသႃႇ တႃႇ ဝီႇၶီႇၼႆ ၶႅၼ်းတေႃႈ ၸႂ်ႉပၼ်  [//translatewiki.net/ translatewiki.net] ဢၼ်ပဵၼ် ၼႃႈၵၢၼ် ပိၼ်ႇၽႃႇသႃႇ မီႇတီႇယႃႇဝီႇၶီႇ ၼႆႉၶႃႈ။",
+       "namespaceprotected": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇမီးသုၼ်ႇၶႂၢင်းပၼ် တႃႇတေမႄးထတ်း ၼႃႈလိၵ်ႈၸိူဝ်းၼႆႉ ၵႃႈတီႈၼႂ်း <strong>$1</strong> ၸိုဝ်ႈၼႆႉ။",
+       "customcssprotected": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇမီးသုၼ်ႇၶႂၢင်းပၼ် တွၼ်ႈတႃႇမႄးထတ်း ၼႃႈလိၵ်ႈ CSS ဢၼ်ၼႆႉ။ ယွၼ်ႉပိူဝ်ႈဝႃႈ မၼ်းပႃးဝႆႉ ၵၢၼ်တင်ႈ လွင်ႈသုၼ်ႇတူဝ် ၽူႈၸႂ်ႉတိုဝ်းတၢင်ႇၵေႃႉဢေႃႈ။",
+       "customjsprotected": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇမီးသုၼ်ႇၶႂၢင်းပၼ် တွၼ်ႈတႃႇမႄးထတ်း ၼႃႈလိၵ်ႈ JavaScript ဢၼ်ၼႆႉ။ ယွၼ်ႉပိူဝ်ႈဝႃႈ မၼ်းပႃးဝႆႉ ၵၢၼ်တင်ႈ လွင်ႈသုၼ်ႇတူဝ် ၽူႈၸႂ်ႉတိုဝ်းတၢင်ႇၵေႃႉဢေႃႈ။",
+       "mycustomcssprotected": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇမီးသုၼ်ႇၶႂၢင်းပၼ် တွၼ်ႈတႃႇမႄးထတ်း ၼႃႈလိၵ်ႈ CSS ဢၼ်ၼႆႉ။",
+       "mycustomjsprotected": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇမီးသုၼ်ႇၶႂၢင်းပၼ် တွၼ်ႈတႃႇမႄးထတ်း ၼႃႈလိၵ်ႈ JavaScript ဢၼ်ၼႆႉ။",
+       "ns-specialprotected": "ၼႃႈလိၵ်ႈၶိုၵ်ႉတွၼ်းၸိူဝ်းၼႆႉ တေဢမ်ႇၸၢင်ႈ မႄးထတ်းလႆႈ",
+       "titleprotected": "ႁူဝ်ၶေႃႈဢၼ်ၼႆႉၼႆႉ ထုၵ်ႇ ၽူႈၸႂ်ႉတိုဝ်း [[User:$1|$1]] ၵေႃႉၼႆႉ ႁႄႉၵင်ႈဝႆႉ။ လွင်ႈတၢင်း ဢၼ်မၼ်းပၼ်ဝႆႉတႄႉ <em>$2</em>.",
+       "exception-nologin": "ဢမ်ႇလႆႈၶဝ်ႈဝႆ့",
+       "yourname": "ၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်း",
+       "userlogin-yourname": "ၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်း",
+       "userlogin-yourname-ph": "ပေႃႇသႂ်ႇပၼ် ၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်း ၸဝ်ႈၵဝ်ႇ",
+       "createacct-another-username-ph": "ပေႃႇသႂ်ႇပၼ် ၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်း",
+       "yourpassword": "ၶေႃႈလပ်ႉ",
+       "userlogin-yourpassword": "ၶေႃႈလပ်ႉ",
+       "userlogin-yourpassword-ph": "ပေႃႉသႂ်ႇၶေႃႈလပ်ႉ",
+       "createacct-yourpassword-ph": "ပေႃႉသႂ်ႇၶေႃႈလပ်ႉ",
+       "yourpasswordagain": "ၶိုၼ်းပေႃႉပၼ် ၶေႃႈလပ်ႉ :",
+       "createacct-yourpasswordagain": "ၼႄႉၼွၼ်းပၼ် ၶေႃႈလပ်ႉ",
+       "createacct-yourpasswordagain-ph": "ပေႃႉသႂ်ႇၶေႃႈလပ်ႉထႅင်ႈၵမ်းၼိုင်ႈ",
+       "remembermypassword": "တွင်းဝႆႉပၼ် လွၵ်ႉဢိၼ်ႇၵဝ်ၶႃႈ တီႈၼႂ်း ၶိူင်ႈပိုတ်ႇဝႆႉၼႆႉ  (တီႈႁိုင်ႁိုင်မၼ်း $1 {{PLURAL:$1|ၼိုင်ႈဝၼ်း|ဝၼ်း}})",
+       "userlogin-remembermypassword": "သိုပ်ႇဢဝ်ၵဝ်ၶႃႈ လွၵ်ႉဢိၼ်ႇဝႆႉလႄႈ",
+       "userlogin-signwithsecure": "ၸႂ်ႉၵွင်ႉသၢၼ် ႁူမ်ႇလူမ်ႈ",
+       "cannotloginnow-title": "ဢမ်ႇၸၢင်ႈၶဝ်ႈ လွၵ်ႉဢိၼ်ႇ ယၢမ်းလဵဝ်",
+       "cannotloginnow-text": "တေဢမ်ႇၸၢင်ႈ လွၵ်ႉၶဝ်ႈ ၽွင်းမိူဝ်ႈၸႂ်ႉ $1",
+       "yourdomainname": "တူဝ်ႇမဵင်း ၸဝ်ႈၵဝ်ႇ :",
+       "password-change-forbidden": "ၸဝ်ႈၵဝ်ႇတေဢမ်ႇၸၢင်ႈ ​လႅၵ်ႈလၢႆႈ ၶေႃႈလပ်ႉ ၵႃႈတီႈၼိူဝ် ဝီႇၶီႇၼႆႉ",
+       "login": "လွၵ်ႉဢိၼ်ႇ",
+       "login-security": "ၼႄႉၼွၼ်း မၢႆၽၢင်ၸဝ်ႈၵဝ်ႇ",
+       "nav-login-createaccount": "လွၵ်ႉဢိၼ်ႇ / သၢင်ႈဢၶွင်ႉ",
+       "userlogin": "လွၵ်ႉဢိၼ်ႇ / သၢင်ႈဢၶွင်ႉ",
+       "userloginnocreate": "လွၵ်ႉဢိၼ်ႇ",
+       "logout": "လွၵ်ႉဢဝ်ႉ",
+       "userlogout": "လွၵ်ႉဢဝ်ႉ",
+       "notloggedin": "ဢမ်ႇလႆႈၶဝ်ႈဝႆ့",
+       "userlogin-noaccount": "ပႆႇပႃႈမီးဢၶွင်ႉႁႃႉ?",
+       "userlogin-joinproject": "ႁူမ်ႈ {{SITENAME}}",
+       "nologin": "ပႆႇပႃႈမီးဢၶွင်ႉႁႃႉ? $1",
+       "nologinlink": "ၵေႃႇသၢင်ႈဢၶွင်ႉ",
+       "createaccount": "ႁဵတ်းဢၶွင်ႉ",
+       "gotaccount": "မီးဢၶွင်ႉဝႆႉယဝ်ႉႁႃႉ? $1",
+       "gotaccountlink": "လွၵ်ႉဢိၼ်ႇ",
+       "userlogin-resetlink": "လိုမ်းပႅတ်ႈၵႂႃႇ ႁူဝ်ယွႆႈ လွၵ်ႉဢိၼ်ႉၸဝ်ႈၵဝ်ႇယဝ်ႉႁႃႉ?",
+       "userlogin-resetpassword-link": "လိုမ်းၵႂႃႇ ၶေႃႈလပ်ႉၸဝ်ႈၵဝ်ႇႁႃႉ?",
+       "userlogin-helplink2": "ၸွႆႈထႅမ်တင်း ၶဝ်ႈလွၵ်ႉဢိၼ်ႇ",
+       "userlogin-loggedin": "​ၸဝ်ႈၵဝ်ႇပေႃး ၶဝ်ႈၸႂ်ႉဝႆႉ ၼင်ႇ{{GENDER:$1|$1}} ယဝ်ႈ။\nၸႂ်ႉပၼ် လၢႆးၼင်ႇပႃႈတႂ်ႈၼႆႉသေ လွၵ်ႉဢိၼ်ႇၼင်ႇ ၽူႈၸႂ်ႉတိုဝ်းတၢင်ႇၵေႃႉ",
+       "userlogin-reauth": "ၸဝ်ႈၵဝ်ႇတေလႆႈ လွၵ်ႉဢိၼ်ႇထႅင်ႈၵမ်းၼိုင်ႈသေ တႃႇၼႄႉၼွၼ်းဝႃႈ ၸဝ်ႈၵဝ်ႇၼႆႉ ပဵၼ် {{GENDER:$1|$1}}.",
+       "userlogin-createanother": "ၵေႃႇသၢင်ႈဢၶွင်ႉ တၢင်ႇဢၼ်",
+       "createacct-emailrequired": "ႁဵင်းလိၵ်ႈ ဢီးမေးလ်",
+       "createacct-emailoptional": "ႁဵင်းလိၵ်ႈဢီးမေး (သႂ်ႇၵေႃႈလႆႈ၊ ဢမ်ႇသႂ်ႇၵေႃႈလႆႈ)",
+       "createacct-email-ph": "ပေႃႉသႂ်ႇပၼ် ႁဵင်းလိၵ်ႈ ဢီးမေးၸဝ်ႈၵဝ်ႇ",
+       "createacct-another-email-ph": "ပေႃႉသႂ်ႇပၼ် ႁဵင်းလိၵ်ႈ ဢီးမေးလ်",
+       "createaccountmail": "ၸႂ်ႉပၼ် ၶေႃႈလပ်ႉၸူဝ်ႈၵႅပ်ႉ သူင်ႇၼၼ်ႉၵႂႃႇၸူး ႁဵင်းလိၵ်ႈဢီးမေးလ် ဢၼ်မၵ်းမၼ်ႈဝႆႉ ပၼ်ၼၼ်ႉ။",
+       "createacct-realname": "ၸိုဝ်ႈတႄႉတႄႉ (ဢဝ်ၸႂ်ဝႃႈ)",
+       "createaccountreason": "လွင်ႈတၢင်း :",
+       "createacct-reason": "လွင်ႈတၢင်း :",
+       "createacct-reason-ph": "ယွၼ်ႉပိူဝ်ႈသင်လႄႈ ၸဝ်ႈၵဝ်ႇ ၵေႃႇသၢင်ႈဢၶွင်ႉတၢင်ႇဢၼ်",
+       "createacct-reason-help": "ၶေႃႈၶၢဝ်ႇၼႄဝႆႉ ၵႃႈတီႈၼႂ်း သဵၼ်ႈ​မၢႆၵေႃႇသၢင်ႈ ဢၶွင်ႉ",
+       "createacct-submit": "ၵေႃႇသၢင်ႈ ဢၶွင်ႉၸဝ်ႈၵဝ်ႇ",
+       "createacct-another-submit": "ၵေႃႇသၢင်ႈဢၶွင်ႉ",
+       "createacct-continue-submit": "သိုပ်ႇၼႃႈ ၵၢၼ်ၵေႃႇသၢင်ႈ ဢၶွင်ႉ",
+       "createacct-another-continue-submit": "သိုပ်ႇၼႃႈ ၵၢၼ်ၵေႃႇသၢင်ႈ ဢၶွင်ႉ",
+       "createacct-benefit-heading": "{{SITENAME}} ၵူၼ်းၼင်ႇၸဝ်ႈၵဝ်ႇ ၵေႃႉႁဵတ်းဝႆႉ",
+       "createacct-benefit-body1": "{{PLURAL:$1|edit|မႄးထတ်း}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|page|ၼႃႈလိၵ်ႈ}}",
+       "createacct-benefit-body3": "မိူဝ်ႈဢၼ်ပႆႇပေႃးႁိုင် {{PLURAL:$1|contributor|ၽူႈၶဝ်ႈႁူမ်ႈ}}",
+       "badretype": "ၶေႃႈလပ်ႉ ဢၼ်ၸဝ်ႈၵဝ်ႇပေႃႉသႂ်ႇၼၼ်ႉ မၼ်းဢမ်ႇၶူပ်းၵၼ်",
+       "usernameinprogress": "ၵၢၼ်ၵေႃႇသၢင်ႈ ဢၶွင်ႉတွၼ်ႈတႃႇ ၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်းၵေႃႉၼႆႉ တိုၵ်ႉႁဵတ်းၵၢၼ်ဝႆႉယူႇ။ ၶႅၼ်းတေႃႈပႂ်ႉပၼ်ၵမ်းၼိုင်ႈ။",
+       "userexists": "ၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်း ဢၼ်ပေႃႉသႂ်ႇဝႆႉၼၼ်ႉ မၼ်းထုၵ်ႇၸႂ်ႉဝႆႉယဝ်ႉ။\nၶႅၼ်းတေႃႈ လိူၵ်ႈပၼ် ၸိုဝ်ႈတၢင်ႇဢၼ်ၶႃႈလႄႈ။",
+       "loginerror": "လွၵ်ႉဢိၼ်ႇ ၽိတ်းပိူင်ႈ",
+       "createacct-error": "ၵၢၼ်ၵေႃႇသၢင်ႈ ဢၶွင်ႉ ၽိတ်းပိူင်ႈ",
+       "createaccounterror": "ဢမ်ႇၸၢင်ႈၵေႃႇသၢင်ႈ ဢၶွင်ႉ : $1",
+       "noname": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇလႆႈ မၵ်းမၼ်ႈဝႆႉပၼ် ၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်း ဢၼ်ၸႂ်ႉလႆႈ။",
+       "loginsuccesstitle": "လွၵ်ႉဢိၼ်ႇဝႆႉယဝ်ႉ",
+       "loginsuccess": "<strong>ၸဝ်ႈၵဝ်ႇ လွၵ်ႉဢိၼ်ႇၶဝ်ႈၸူး  {{SITENAME}} ၼင်ႇ \"$1\".</strong> ယဝ်ႉဢေႃႈ ယၢမ်းလဵဝ်",
+       "nosuchusershort": "ဢၼ်ပဵၼ်ၸိုဝ်ႈ ၽူႈၸႂ်ႉတိုဝ်း \"$1\" ဢၼ်ၼႆႉ မၼ်းဢမ်ႇမီး။\nမႄးၵူတ်ႇတူၺ်း တူဝ်လိၵ်ႈမၼ်းလီလီလႄႈ။",
+       "nouserspecified": "ၸဝ်ႈၵဝ်ႇ ထုၵ်ႇလီမၵ်းမၼ်ႈ ၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်း",
+       "login-userblocked": "ၽူႈၸႂ်ႉတိုဝ်းၵေႃႉၼႆႉ ထုၵ်ႇႁႄႉတတ်းဝႆႉ။ ဢမ်ႇမီးသုၼ်ႇတႃႇ လွၵ်ႉဢိၼ်ႇ",
+       "wrongpassword": "ၶေႃႈလပ်ႉဢၼ်ပေႃႉသႂ်ႇ ၽိတ်းပိူင်ႈဝႆႉ။\nၶတ်းၸႂ်တူၺ်းထႅင်ႈၵမ်းၼိုင်ႈ။",
+       "wrongpasswordempty": "ၶေႃႈလပ်ႉဢၼ်ပေႃႉသႂ်ႇၵႂႃႇၼၼ်ႉ မၼ်းပဵၼ်လွၵ်းပဝ်ႇဝႆႉ။\nၶတ်းၸႂ်တူၺ်း ထႅင်ႈၵမ်းၼိုင်ႈလႄႈ။",
+       "passwordtooshort": "ၶေႃႈလပ်ႉၼႆႉ တီႈဢေႇသုတ်းမၼ်း တေလႆႈမီး {{PLURAL:$1|1 တူဝ်|$1 တူဝ်}}.",
+       "passwordtoolong": "ၶေႃႈလပ်ႉၼႆႉ တေဢမ်ႇလႆႈ ယၢဝ်းပူၼ်ႉလိူဝ် {{PLURAL:$1|1 တူဝ်|$1 တူဝ်}}.",
+       "passwordtoopopular": "ၶေႃႈလပ်ႉၸိူဝ်းၵူၼ်းၸႂ်ႉၼမ်ၼၼ်ႉ တေဢမ်ႇၸၢင်ႈဢဝ်ၸႂ်ႉ။ ၶႅၼ်းတေႃႈ လိူၵ်ႈပၼ် ၶေႃႈလပ်ႉ ဢၼ်ပႅၵ်ႇပိူၼ်ႈၼၼ်ႉလႄႈ။",
+       "password-name-match": "ၶေႃႈလပ်ႉၸဝ်ႈၵဝ်ႇၼႆႉ တေလႆႈပႅၵ်ႇပိူင်ႈၵၼ်တင်း ၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်းၸဝ်ႈၵဝ်ႇ။",
+       "password-login-forbidden": "လွင်ႈဢဝ်ၸႂ်ႉ ၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်း ဢၼ်ၼႆႉလႄႈ ၶေႃႈလပ်ႉဢၼ်ၼႆႉၼႆႉ ထုၵ်ႇႁၢမ်ႈသီး ဝႆႉဢေႃႈ။",
+       "mailmypassword": "ၶိုၼ်းမႄးတင်ႈ ၶေႃႈလပ်ႉ",
+       "passwordremindertitle": "ၶေႃႈလပ်ႉၸူဝ်ႈၵႅပ်ႉ ဢၼ်မႂ်ႇ တွၼ်ႈတႃႇ {{SITENAME}}",
+       "noemail": "ဢမ်ႇမီးႁဵင်းလိၵ်ႈဢီးမေးလ် ဢၼ်မၢႆတွင်းဝႆႉတႃႇ ၽူႈၸႂ်ႉတိုဝ်း \"$1\" ၼႆႉ",
+       "noemailcreate": "ၸဝ်ႈၵဝ်ႇ တေလႆႈသႂ်ႇပၼ်ႇ ႁဵင်းလိၵ်ႈဢီးမေးလ် ဢၼ်ၸၢင်ႈၸႂ်ႉလႆႈၼၼ်ႉ။",
+       "passwordsent": "ၶေႃႈလပ်ႉဢၼ်မႂ်ႇ ထုၵ်ႇလႆႈသူင်ႇၵႂႃႇၸူး ႁဵင်းလိၵ်ႈဢီးမေးလ် ဢၼ်တၢင်ႇမၢႆၽၢင်ႇဝႆႉ တႃႇ \"$1\" ။\nပေႃးဝႃႈ ႁပ်ႉလႆႈယဝ်ႉၼႆ ၶႅၼ်းတေႃႈ လွၵ်ႉဢိၼ်ႇၶဝ်ႈၸူး ထႅင်ႈၵမ်းၼိုင်ႈၶႃႈ။",
+       "blocked-mailpassword": "ႁဵင်းလိၵ်ႈ ဢၢႆႇပီႇ IP ၸဝ်ႈၵဝ်ႇၼၼ်ႉ ထုၵ်ႇႁႄႉတတ်းဝႃႈ တႃႇတေ​​ မႄးထတ်း။ လႆႈႁႄႉၵင်ႈဝႆႉ တွၼ်ႈတႃႇ ယႃႇႁႂ်းမီး လွင်ႈလူလၢႆၵၼ်လႄႈ လုၵ်ႉတီႈ မၢႆဢၢႆႇပီႇ IP ၼႆႉသေ တေဢမ်ႇၸၢင်ႈ ဢဝ်ၶိုၼ်းလႆႈ မၢႆလပ်ႉ။",
+       "eauthentsent": "ဢီးမေးလ်ၶေႃႈၼႄႉၼွၼ်း ၼၼ်ႉ ထုၵ်ႇသူင်ႇၵႂႃႇၸူးတီႈ ႁဵင်းလိၵ်ႈဢီးမေးလ် ဢၼ်လႆႈ မၵ်းမၼ်ႈပၼ်ဝႆႉၼၼ်ႉယဝ်ႉ။ မိူဝ်ႈဢီးမေးလ်တၢင်ႇဢၼ် ပႆႇတၼ်းသူင်ႇၶဝ်ႈမႃး ၸူးတီႈဢၶွင်ႉဢၼ်ၼႆႉၼႆႉ ၸဝ်ႈၵဝ်ႇ ထုၵ်ႇလီႁဵတ်းၸွမ်းၼင်ႇ ၶေႃႈၸီႉသင်ႇ ဢၼ်ပႃး ၵႃႈတီႈၼႂ်း ဢီးမေးလ်ၼၼ်ႉယူႇ။ ၼၼ်ႉမၼ်းပဵၼ်တႃႇၼႄႉၼွၼ်းဝႃႈ ဢၶွင်ႉဢၼ်ၼႆႉ မၼ်းပဵၼ်ႁင်းၸဝ်ႈၵဝ်ႇယူႇတႄႉ ၼႆဢေႃႈ။",
+       "throttled-mailpassword": "ဢီးမေးလ်တႃႇ ၶိုၼ်းတင်ႈၶေႃႈလပ်ႉၼႆႉ ထုၵ်ႇသူင်ႇၵႂႃႇ မိူဝ်ႈပူၼ်ႉမႃး\n{{PLURAL:$1|မူင်း|$1 မူင်း}}.\nတွၼ်ႈတႃႇႁႄႉၵင်ႈ လွင်ႈလူလၢႆၵၼ်ၼႆ ၼႂ်းၵႃႈ \n{{PLURAL:$1| ၸူဝ်ႈမူင်း|$1 ၸူဝ်ႈမူင်း}} တေသူင်ႇပၼ် ဢီးမေးလ် ၶိုၼ်းတင်ႈၶေႃႈလပ်ႉ ၼိုင်ႈပွၵ်ႈၵူၺ်း။",
+       "mailerror": "လွင်ႈသူင်ႇ ဢီးမေးလ် ၽိတ်းပိူင်ႈ : $1",
+       "emailauthenticated": "ႁဵင်းလိၵ်ႈ ဢီးမေးလ်ၸဝ်ႈၵဝ်ႇၼႆႉ ထုၵ်ႇၼႄႉၼွၼ်း မိူဝ်ႈ ဝၼ်းထီႉ $2 ၶၢဝ်းယၢဝ်း $3",
+       "emailnotauthenticated": "ႁဵင်းလိၵ်ႈ ဢီးမေးလ်ၸဝ်ႈၵဝ်ႇ ၼႆႉ ဢမ်ႇပႆႇလႆႈ ၼႄႉၼွၼ်း။\nဢီးမေးလ် တွၼ်ႈတႃႇ ၽၢင်ႈႁၢင်ႈၵၢၼ် ၸွမ်းၼင်ႇၼႄဝႆႉၼၼ်ႉတႄႉ တေဢမ်ႇသူင်ႇ ပၼ်သေဢၼ်။",
+       "noemailprefs": "တႃႇႁႂ်ႈ ၽၢင်ႁၢင်ႈၵၢၼ်ၸိူဝ်းၼႆႉ ႁဵတ်းၵၢၼ်ပၼ်ၼႆ ၵႂႃႇမၵ်းမၼ်ႈပၼ် ႁဵင်းလိၵ်ႈ ဢီးမေးလ် ၵႃႈတီႈ ငဝ်ႈၵုမ်းပိူင် ၸဝ်ႈၵဝ်ႇၼၼ်ႉလႄႈ။",
+       "emailconfirmlink": "ၼႄႉၼွၼ်း ႁဵင်းလိၵ်ႈ ဢီးမေးလ်ၸဝ်ႈၵဝ်ႇ။",
+       "cannotchangeemail": "ႁဵင်းလိၵ်ႈဢီးမေး ဢၶွင်ႉၼႆႉ တေဢမ်ႇၸၢင်ႈ လႅၵ်ႈလၢႆႈလႆႈ ၵႃႈတီႈဝီႇၶီႇၼႆႉ။",
+       "emaildisabled": "သၢႆႉဢၼ်ၼႆႉ တေဢမ်ႇၸၢင်ႈသူင်ႇလႆႈ ဢီးမေးလ်",
+       "accountcreated": "ၵေႃႇသၢင်ႈ ဢၶွင်ႉ ယဝ်ႉယဝ်ႈ",
+       "accountcreatedtext": "ဢၶွင်ႉ ၽူႈၸႂ်ႉတိုဝ်း တွၼ်ႈတႃႇ  [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) ၼႆႉ ထုၵ်ႇၵေႃႇသၢင်ႈယဝ်ႉယဝ်ႈ။",
+       "createaccount-title": "ၵေႃႇသၢင်ႈဢၶွင်ႉ တွၼ်ႈတႃႇ {{SITENAME}}",
+       "loginlanguagelabel": "ၽႃႇသႃႇၵႂၢမ်း: $1",
+       "pt-login": "လွၵ်ႉဢိၼ်ႇ",
+       "pt-login-button": "လွၵ်ႉဢိၼ်ႇ",
+       "pt-createaccount": "ၵေႃႇသၢင်ႈဢၶွင်ႉ",
+       "pt-userlogout": "လွၵ်ႉဢဝ်ႉ",
+       "botpasswords-label-create": "ၵေႃႇသၢင်ႈ",
+       "botpasswords-label-update": "ဢၢပ်ႉတိတ်ႉ",
+       "botpasswords-label-cancel": "ဢမ်ႇႁဵတ်း",
+       "botpasswords-label-delete": "ယႃႉ",
+       "botpasswords-label-resetpassword": "ၶိုၼ်းမႄးတင်ႈ ၶေႃႈလပ်ႉ",
+       "passwordreset": "ၶိုၼ်းမႄးတင်ႈ ၶေႃႈလပ်ႉ",
+       "passwordreset-email": "ႁဵင်းလိၵ်ႈ ဢီးမေးလ် :",
+       "passwordreset-emailtitle": "လွင်ႈႁူဝ်ယွႆႈ ဢၶွင်ႉ ၵႃႈတီႈ {{SITENAME}}",
+       "passwordreset-emailelement": "ၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်း:\n$1\n\nၶေႃႈလပ်ႉ ၸူဝ်ႈၵႅပ်ႉ:\n$2",
+       "passwordreset-emailsentemail": "ႁဵင်းလိၵ်ႈ ဢီးမေးလ်ဢၼ်ၼႆႉၼႆႉ မၼ်းၵပ်းၵၢႆႇၵၼ်တင်း ဢၶွင်ႉၸဝ်ႈၵဝ်ႇ၊ ဢၼ်ပဵၼ် ဢီးမေးလ် တႃႇတင်ႈၶိုၼ်းမၢႆလပ်ႉၼၼ်ႉ တေထုၵ်ႇသူင်ႇၸူးယူႇ.",
+       "passwordreset-emailsentusername": "ႁဵင်းလိၵ်ႈ ဢီးမေးလ်ဢၼ်ၼႆႉၼႆႉ မၼ်းၵပ်းၵၢႆႇၵၼ်တင်း ၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်း ဢၼ်ၼႆႉ၊ ဢၼ်ပဵၼ် ဢီးမေးလ် တႃႇတင်ႈၶိုၼ်းမၢႆလပ်ႉၼၼ်ႉ တေထုၵ်ႇသူင်ႇၸူးယူႇ.",
+       "passwordreset-emailsent-capture": "ဢီးမေးလ် ၵၢၼ်တင်ႈၶိုၼ်း ​မၢႆလပ်ႉၼၼ်ႉ ထုၵ်ႇသူင်ႇၵႂႃႇၸူး ဢၼ်ၼႄဝႆႉၼင်ႇ ၽၢႆႇတႂ်ႈၼႆႉ။",
+       "bold_sample": "တူဝ်လိၵ်ႈၼႃ",
+       "bold_tip": "တူဝ်လိၵ်ႈၼႃ",
+       "italic_sample": "တူဝ်လိၵ်ႈၵိူင်း",
+       "italic_tip": "တူဝ်လိၵ်ႈၵိူင်း",
+       "link_sample": "ႁူဝ်ၶေႃႈႁဵင်းၵွင်ႉ",
+       "link_tip": "ႁဵင်းၵွင်ႉတၢင်းၼႂ်း",
+       "extlink_sample": "http://www.example.com ႁူဝ်ၶေႃႈႁဵင်းၵွင်ႉ",
+       "extlink_tip": "ႁဵင်းၵွင်ႉၵႂႃႇတၢင်ႇတီႈ (ယႃႇလိုမ်းသႂ်ႇ http:// ပႃႈၼႃႈသုတ်း)",
+       "headline_sample": "လိၵ်ႈ​ႁူဝ်ၶေႃႈ",
+       "headline_tip": "ႁူဝ်ၶေႃႈ ထၢၼ်ႈ ႒",
+       "nowiki_sample": "ဢဝ်လိၵ်ႈဢၼ်ဢမ်ႇမီးပိူင် သႂ်ႇပၼ်တီႈၼႆႈ",
+       "nowiki_tip": "ၶၢမ်ႈပႅတ်ႈပိူင် wiki",
+       "image_tip": "ၾၢႆႇၽင်ဝႆႉ",
+       "media_tip": "ႁဵင်းၵွင်ႉၾၢႆႇ",
+       "sig_tip": "လၢႆးမိုဝ်းၸဝ်ႈၵဝ်ႇ ၸွမ်း ၸုမ်ႈၶၢဝ်းယၢမ်း",
+       "hr_tip": "သၢႆၼႃႈသုင် - ၸႂ်ႉဢၼ်ၵႅမ်",
+       "summary": "ႁူဝ်ႁုပ်ႈ :",
+       "minoredit": "ပဵၼ်လွင်ႈမူၼ်ႉမႄးဢိတ်းဢီႈ",
+       "watchthis": "တူၺ်းၼႃႈလိၵ်ႈၼႆႉ",
+       "savearticle": "ၵဵပ်းသိမ်း ၼႃႈလိၵ်ႈ",
+       "showpreview": "ၼႄတူဝ်ယၢင်ႇ",
+       "showdiff": "ၼႄလွင်ႈလႅၵ်ႈလၢႆႈ",
+       "anoneditwarning": "<strong>ၽၢင်ႉပၼ်:</strong> ၸဝ်ႈၵဝ်ႇဢမ်ႇလႆႈ ၶဝ်ႈလွၵ်ႉဢိၼ်ႇဝႆႉ။ သင်ၸိူဝ်ႉဝႃႈ ၸဝ်ႈၵဝ်ႇ ႁဵတ်းလွင်ႈလႅၵ်ႈလၢႆႈသေဢၼ်ၼႆႉ ဢၼ်ပဵၼ် မၢႆသၢႆၼႅတ်ႇ - IP address ၸဝ်ႈၵဝ်ႇၼၼ်ႉ တေဢွၵ်ႇၼႄဝႆႉ ႁႂ်ႈၵူၼ်းတၢင်းၼမ်ႁၼ်ၸွမ်း။ သင်ၸိူဝ်ႉၸဝ်ႈၵဝ်ႇ <strong>[$1 log in]</strong> ဢမ်ႇၼၼ် <strong>[$2 create an account]</strong>, ၵၢၼ်ၸဝ်ႈၵဝ်ႇ ႁဵတ်းၼၼ်ႉၵေႃႈ မၼ်းတေၵႂႃႇၶဝ်ႈပဵၼ် လွင်ႈႁူမ်ႈသၢင်ႈ ၵႃႈတီႈ ၸိုဝ်ႈၸဝ်ႈၵဝ်ႇသေ ၸဝ်ႈၵဝ်ႇ ႁူမ်ႈသၢင်ႈသင်ၼႆၵေႃႈ ၵူႈၵေႃႉ တေလႆႈႁၼ်ၵိုၵ်းၸိုဝ်ႈ ၸဝ်ႈၵဝ်ႇယူႇ။",
+       "loginreqlink": "လွၵ်ႉဢိၼ်ႇ",
+       "newarticletext": "ၸဝ်ႈၵဝ်ႇလႆႈၸွမ်းလင်ဝႆႉ ႁႅင်းၵွင်ႉ ၼႃႈလိၵ်ႈ ဢၼ်ဢမ်ႇမီးဝႆႉၼၼ်ႉ။\nတႃႇတေၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈ၊ တႄႇပေႃႉသႂ်ႇၵႃႈတီႈ လွၵ်ႈပႃႈတႂ်ႈ \n (တွၼ်ႈတႃႇ လွၼ်ႉၶၢဝ်ႇ တၢင်ႇၸိူဝ်း တူၺ်းၵႃႈတီႈ [$1 help page] ).\nသင်ၸိူဝ်ႉဝႃႈ ၸဝ်ႈၵဝ်ႇ ၽိတ်းတၢင်းသေ ၽႅဝ်မႃးတီႈၼႆႈၼႆ၊ ၼဵၵ်း ပၼ်တူဝ် <strong>ၼဵၼ်ႁူၼ်လင်</strong> ၶွင် တူဝ်ပိုတ်ႇဝႅပ်ႉ ၸဝ်ႈၵဝ်ႇလႄႈ။",
+       "noarticletext": "ၼႂ်းၼႃႈၼႆႉယင်းဢမ်ႇမီးလိၵ်ႈသင်တေႃႈလဵဝ်။\nသူၸၢင်ႈ [[Special:Search/{{PAGENAME}}|ႁႃ ႁူဝ်ၶေႃႈၼႃႈလိၵ်ႈၼႆႉ]] ၼႂ်းတၢင်ႇၼႃႈ၊\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ၶူၼ်ႉႁႃ logs ဢၼ်ၵွင်ႉၵၢႆၵၼ်],\nဢမ်ႇၼၼ် [{{fullurl:{{FULLPAGENAME}}|action=edit}} သၢင်ႈၼႃႈၼႆႉ]</span>။",
+       "noarticletext-nopermission": "ၼႂ်းၼႃႈၼႆႉယင်းဢမ်ႇမီးလိၵ်ႈသင်တေႃႈလဵဝ်။\nသူၸၢင်ႈ [[Special:Search/{{PAGENAME}}|ႁႃ ႁူဝ်ၶေႃႈၼႆႉ]] ၼႂ်းတၢင်ႇၼႃႈ၊\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ၶူၼ်ႉႁႃ logs ဢၼ်ၵဵဝ်ႇၵွင်ႉၵၼ်],\nဢမ်ႇၼၼ် [{{fullurl:{{FULLPAGENAME}}|action=edit}} မူၼ်ႉမႄးၼႃႈၼႆႉ]</span>။",
+       "editing": "တိုၵ်ႉမူၼ်ႉမႄး $1",
+       "creating": "တိုၵ်ႉၵေႃႇသၢင်ႈ $1",
+       "editingsection": "မႄးထတ်း $1 (ၵၼ်)",
+       "templatesused": "{{PLURAL:$1|Template|ပိူင်တမ်း}} ၸႂ်ႉဝႆႉတီႈၼႃႈလိၵ်ႈၼႆႉ:",
+       "template-protected": "ႁႄႉၵင်ႈဝႆႉ",
+       "template-semiprotected": "(ႁႄႉၵၼ်ႈဝႆႉ ၵမ်ႈၽွင်ႈ)",
+       "hiddencategories": "ၼႃႈလိၵ်ႈဢၼ်ၼႆႉ မၼ်းပဵၼ် ၼႃႈလိၵ်ႈၶဝ်ႈၸုမ်း {{PLURAL:$1|1 hidden category|$1 ၵၼ်သိူင်ႇဝႆႉ}}:",
+       "permissionserrorstext-withaction": "ၸဝ်ႈၵဝ်ႇဢမ်ႇမီးသုၼ်ႇ တႃႇ $2, တွၼ်ႈတႃႇ ၸိူဝ်း ဢၼ်ပဵၼ် {{PLURAL:$1|reason|လွင်ႈတၢင်း}}:",
+       "moveddeleted-notice": "ၼႃႈလိၵ်ႈၼႆႉ မွတ်ႇပႅတ်ႈၵႂႃႇယဝ်ႉ။ လွင်ႈမွတ်ႇပႅတ်ႈလႄႈ လွင်ႈၶၢႆႉသၢႆမၢႆ တွၼ်ႈတႃႇ ၼႃႈလိၵ်ႈၼႆႉ ၵမ်ႉထႅမ်ဝႆႉပၼ် ၼင်ႇပႃႈတႂ်ႈၼႆႉယူႇ။ မၼ်းပဵၼ် တွၼ်ႈတႃႇ ႁဵတ်းၽိုၼ်ဢိင်ယဝ်ႉ။",
+       "post-expand-template-inclusion-warning": "<strong>ၶေႃႈၽၢင်ႉ</strong> - ပိူင်ဢဝ်မႃးႁူမ်ႈၼၼ်ႉယႂ်ႇပူၼ်ႉၼႃႇ။\nပိူင်မၢင်ၼႃႈတေဢမ်ႇႁူမ်ႈပႃးၸွမ်း။",
+       "viewpagelogs": "တူၺ်းသၢႆမၢႆ တွၼ်ႈတႃႇၼႃႈလိၵ်ႈၼႆႉ",
+       "currentrev-asof": "ၵၢၼ်ၶူၼ်ႉလူ ၵမ်းလိုၼ်းသုတ်းၼင်ႇ  $1",
+       "revisionasof": "ၶိုၼ်းၶူၼ်ႉလူၼင်ႇ $1",
+       "revision-info": "ၶူၼ်ႉလူၼင်ႇ  $1 ၼင်ႇ {{GENDER:$6|$2}}$7",
+       "previousrevision": "← ၸိူဝ်းဢၼ်ၵဝ်ႇ",
+       "nextrevision": "ၵၢၼ်ၶူၼ်ႉလူဢၼ်မႂ်ႇ",
+       "currentrevisionlink": "ၵၢၼ်ၶူၼ်ႉလူ ၵမ်းလိုၼ်းသုတ်း",
+       "cur": "ယၢမ်းလဵဝ်",
+       "last": "ဢွၼ်တၢင်း",
+       "history-show-deleted": "ဢၼ်​ယႃႉ​ဝႆႉ​ၼၼ်ႉၵွၺ်း",
+       "histfirst": "ဢၼ်ၸဝ်ႉတီႈသုတ်း",
+       "histlast": "ဢၼ်လိုၼ်းသုတ်း",
+       "rev-delundel": "ၼႄ/သိူင်ႇ",
+       "revertmerge": "ၶိုၼ်းၸႅၵ်ႇဢွၵ်ႇ",
+       "history-title": "ပိုၼ်းၶူၼ်ႉလူတွၼ်ႈတႃႇ \"$1\"",
+       "difference-title": "လွင်ႈပႅၵ်ႇပိူင်ႈ ၼႂ်းၵႄႈ လွင်ႈၶူၼ်ႉလူ တင်း \"$1\"",
+       "lineno": "ထႅဝ် $1:",
+       "editundo": "ၶိုၼ်ၶိုၼ်း",
+       "diff-multi-sameuser": "({{PLURAL:$1|လွင်ႈမႄး ပၢၼ်ၵၢင် |$1 လွင်ႈၸိူဝ်းမႄး ပၢၼ်ၵၢင်}} ​ပေႃးတႃႇ ၽူႈၸႂ်တိုဝ်းမိူၼ်ၵၼ် တေဢမ်ႇၼႄပၼ်)",
+       "searchresults": "ၶူၼ်ႉႁႃၺႃး",
+       "searchresults-title": "ၶူၼ်ႉႁႃၺႃးတွၼ်ႈတႃႇ \"$1\"",
+       "prevn": "ပႃႈၼႃႈ {{PLURAL:$1|$1}}",
+       "nextn": "တေႃႇထႅင်ႈ {{PLURAL:$1|$1}}",
+       "nextn-title": "သိုပ်ႇၵႂႃႇၸူး $1 {{PLURAL:$1|result|ၽွၼ်းလႆႈ}}",
+       "shown-title": "ၼႄ $1 {{PLURAL:$1|result|results}} ၼိူဝ်​ၼႃႈ​လိၵ်ႈ​ၼိူင်ႈၼႃႈ",
+       "viewprevnext": "တူၺ်း ($1 {{int:pipe-separator}} $2) ($3)",
+       "searchmenu-new": "<strong> ၶူင်သၢင်ႈၼႃႈလိၵ်ႈ \"[[:$1]]\" တီႈဝီႇၶီႇၼႆႉ </strong> {{PLURAL:$2|0=|ၼႃႈလိၵ်ႈၼႆႉ ၼႄဝႆႉ ဢၼ်ၸဝ်ႈၵဝ်ႇသွၵ်ႈႁႃ| တူၺ်းၼႃႈလိၵ်ႈဢၼ် ၼႄပၼ် ၸိူဝ်း ဢၼ်ၸဝ်ႈၵဝ်ႇသွၵ်ႈႁႃဝႆ့}}",
+       "searchprofile-articles": "ၼႃႈလိၵ်ႈ ၼမ်းၼႂ်း",
+       "searchprofile-images": "သႅၼ်သိုဝ်ႇၶၢဝ်ႇ",
+       "searchprofile-everything": "ၵူႊဢၼ်",
+       "searchprofile-advanced": "ၸၼ်ႉသုင်",
+       "searchprofile-articles-tooltip": "ႁႃၼႂ်း $1",
+       "searchprofile-images-tooltip": "ႁႃတႃႇၾၢႆႇ",
+       "searchprofile-everything-tooltip": "သွၵ်ႈႁႃလမ်းၼႂ်းတင်းမူတ်း (ဢိၵ်ႇပႃးၼႃႈလိၵ်ႈ ဢုပ်ႇဢူဝ်း)",
+       "searchprofile-advanced-tooltip": "သွၵ်ႈႁႃတီႈၼႂ်း ဢွင်ႈတီႈၸိုဝ်ႈႁင်းတူဝ်",
+       "search-result-size": "$1 ({{PLURAL:$2|1 ၶေႃႈ|$2 ၶေႃႈ}})",
+       "search-redirect": "(ပိၼ်ႇသဵၼ်ႈတၢင်းၸူး $1)",
+       "search-section": "(တွၼ်ႈၵၼ် $1)",
+       "search-suggest": "ၶႂ်ႈဝႃႈ $1 - ၼႆႁႃႉ",
+       "searchall": "တင်းမူတ်း",
+       "search-showingresults": "{{PLURAL:$4|ၽွၼ်းလႆႈ <strong>$1</strong> တႃႇ <strong>$3</strong>|ၽွၼ်းလႆႈ <strong>$1 - $2</strong> တႃႇ <strong>$3</strong>}}",
+       "search-nonefound": "ဢမ်ႇမီးၽွၼ်းလႆႈ ၼိူဝ်ၵၢၼ် လွင်ႈသွၵ်ႈႁႃ",
+       "mypreferences": "လွင်ႈလႆႈၸႂ်လိူဝ်",
+       "right-writeapi": "ၸႂ်ႉတိုဝ်း လွင်ႈတႅမ်ႈ API",
+       "newuserlogpage": "သၢႆမၢႆလွင်ႈၵေႃႇသၢင်ႈ ၽူႈၸႂ်ႉတိုဝ်း",
+       "action-edit": "မူၼ်ႉမႄး ၼႃႈလိၵ်ႈၼႆႉ",
+       "enhancedrc-history": "ပိုၼ်း",
+       "recentchanges": "မီးလွင်ႈလႅၵ်ႈလၢႆႈပႆႇႁိုင်",
+       "recentchanges-legend": "ၵၼ်လိူၵ်ႈသၢင်ႈ လွင်ႈလႅၵ်ႈလၢႆႈဢၼ်ပူၼ်ႉမႃး",
+       "recentchanges-summary": "ၸွမ်းတူၺ်းႁွႆး ဢၼ်ပဵၼ်ၵၢၼ် တိုၵ်ႉႁႃလႅၵ်ႈလၢႆႈၵႂႃႇ တွၼ်ႈတႃႇၼႃႈလိၵ်ႈ ဝီႇၶီႇၼႆႉ။",
+       "recentchanges-label-newpage": "လွင်ႈမႄးထတ်းဢၼ်ၼႆႉ ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈဢၼ်မႂ်ႇယဝ်ႉ",
+       "recentchanges-label-minor": "ပဵၼ်လွင်ႈမူၼ်ႉမႄးဢိတ်းဢီႈ",
+       "recentchanges-label-bot": "လွင်ႈမႄးထတ်းဢၼ်ၼႆႉ ပမၼ်းပဵၼ် bot ၵေႃႉႁဵတ်းၵႂႃႇ",
+       "recentchanges-label-unpatrolled": "ၶေႃႈထတ်းၼႆႉ ပႆႉၼႅၼ်ႈၼႃ",
+       "recentchanges-label-plusminus": "သႅၼ်းၼႃႈလိၵ်ႈၼႆႉ ထုၵ်ႇလႅၵ်ႈလၢႆႈ ၸွမ်းၼင်ႇ မၢႆ bytes ဢၼ်ၼႆႉ",
+       "recentchanges-legend-heading": "<strong>ဢပုမ်ႇ:</strong>",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (တူၺ်းပႃးထႅင်ႈ [[Special:NewPages|သဵၼ်ႈမၢႆ ၼႃႈလိၵ်ႈဢၼ်မႂ်ႇ]])",
+       "rclistfrom": "ၼႄ လွင်ႈ​လႅၵ်ႈလၢႆႈဢၼ်မႂ်ႇ တႄႇတီႈ $2, $3",
+       "rcshowhideminor": "$1 လွင်ႈမူၼ်ႉမႄး ဢိတ်းဢီႈ",
+       "rcshowhideminor-show": "ၼႄ",
+       "rcshowhideminor-hide": "သိူင်ႇ",
+       "rcshowhidebots": "$1 ၿွတ်ႉ",
+       "rcshowhidebots-show": "ၼႄ",
+       "rcshowhidebots-hide": "သိူင်ႇ",
+       "rcshowhideliu": "$1 ၽူႈၸႂ်ႉ ဢၼ်တၢင်ႇမၢႆၽၢင်ဝႆႉ",
+       "rcshowhideliu-hide": "သိူင်ႇ",
+       "rcshowhideanons": "$1 ၽူႈၸႂ်ႉတိုဝ်းဢမ်ႇသႂ်ႇၸိုဝ်ႈ",
+       "rcshowhideanons-show": "ၼႄ",
+       "rcshowhideanons-hide": "သိူင်ႇ",
+       "rcshowhidemine": "$1 ဢၼ်ၵဝ်ၶႃႈ မူၼ်ႉမႄး",
+       "rcshowhidemine-show": "ၼႄ",
+       "rcshowhidemine-hide": "သိူင်ႇ",
+       "rcshowhidecategorization": "$1 ၼႃႈလိၵ်ႈ ပၢႆး-",
+       "rcshowhidecategorization-show": "ၼႄ",
+       "rcshowhidecategorization-hide": "သိူင်ႇ",
+       "rclinks": "ၼႄလွင်ႈလႅၵ်ႈလၢႆႈ ၵမ်းလိုၼ်းသုတ်း $1 ဢၼ်လႅၵ်ႈလၢႆႈမႃး မိူဝ်ႈ $2 ဝၼ်းၼၼ်ႉ<br />$3",
+       "diff": "ပႅၵ်ႇပိူင်ႈ",
+       "hist": "ပိုၼ်း",
+       "hide": "သိူင်ႇ",
+       "show": "ၼႄ",
+       "minoreditletter": "m",
+       "newpageletter": "N",
+       "boteditletter": "b",
+       "rc_categories_any": "လိူၵ်ႈသေဢၼ်ဢၼ်",
+       "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} ဝၢႆးသေလႅၵ်ႈလၢႆႈ",
+       "recentchangeslinked": "တၢင်း​လႅၵ်ႈ​လၢႆႈ ဢၼ်​ၵဵဝ်ႇ​ၵွင်ႉ",
+       "recentchangeslinked-toolbox": "တၢင်း​လႅၵ်ႈ​လၢႆႈ ဢၼ်​ၵဵဝ်ႇ​ၵွင်ႉ",
+       "recentchangeslinked-title": "ၵၢၼ်လႅၵ်ႈလၢႆႈ ဢၼ်ၵပ်းၵၢႆႇလူၺ်ႈ  \"$1\"",
+       "recentchangeslinked-summary": "ဢၼ်ၼႆႉၼႆႉပဵၼ် သဵၼ်ႈမၢႆ လွင်ႈလႅၵ်ႈလၢႆႈ ၸိူဝ်းဢၼ်တိုၵ်ႉႁႃ လႅၵ်ႈလၢႆႈမႃးၸူး ၼႃႈလိၵ်ႈ ဢၼ်မၵ်းမၼ်ႈဝႆႉၼႆႉ (ဢမ်ႇၼၼ် ၸူး ၽူႈၶဝ်ႈၸုမ်း ဢၼ်မီးၼႂ်း ၵၼ် ဢၼ်လႆႈမၵ်းမၼ်ႈဝႆႉ).\nၼႃးလိၵ်ႈ ၸိူဝ်းမီးၼိူဝ် [[Special:Watchlist|your watchlist]] ၼႆႉ <strong>တေလမ်ၼႃႈ</strong>ဝႆ့။",
+       "recentchangeslinked-page": "ၸိုဝ်ႈၼႃႈလိၵ်ႈ",
+       "recentchangeslinked-to": "ၼႄပၼ် လွၵ်ႈလႅၵ်ႈလၢႆႈ ၸူး ၼႃႈလိၵ်ႈ ဢၼ်ၵွင်ႉသိုပ်ႇ",
+       "recentchanges-page-added-to-category": "[[:$1]] သႂ်ႇၼႂ်း ပၢႆးယဝ်ႉ",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] and [[Special:WhatLinksHere/$1|{{PLURAL:$2|one page|$2 pages}}]] ဢဝ်သႂ်ႇၼႂ်း ပၢႆး",
+       "recentchanges-page-removed-from-category": "[[:$1]] ဢဝ်ဢွၵ်ႇတမ်ႈတီႈ ပၢႆး",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] and {{PLURAL:$2|one page|$2 pages}} ဢဝ်ဢွၵ်ႇ တမ်ႈတီႈ ၼႂ်းပၢႆး",
+       "upload": "လူတ်ႇၶိုၼ်ႈၾၢႆႇ",
+       "filedesc": "ႁူဝ်ႁုပ်ႈ",
+       "upload-dialog-title": "လူတ်ႇၶိုၼ်ႈၾၢႆႇ",
+       "upload-dialog-button-cancel": "ဢမ်ႇႁဵတ်း",
+       "upload-dialog-button-done": "ယဝ်ႉ",
+       "upload-dialog-button-save": "ၵဵပ်းသိမ်း",
+       "upload-dialog-button-upload": "လူတ်ႇၶိုၼ်ႈ",
+       "upload-form-label-infoform-title": "ႁူဝ်ယွႆႈ",
+       "upload-form-label-infoform-name": "ၸိုဝ်ႈ",
+       "upload-form-label-infoform-description": "ၶေႃႈသပ်းလႅင်း",
+       "upload-form-label-usage-title": "ၶေႃႈၸႂ်ႉ",
+       "upload-form-label-usage-filename": "ၸိုဝ်ႈၾၢႆႇ",
+       "license-header": "ဝႆၶႂၢင်း",
+       "imgfile": "ၾၢႆႇ",
+       "file-anchor-link": "ၾၢႆႇ",
+       "filehist": "ပိုၼ်းၾၢႆႇ",
+       "filehist-help": "တဵၵ်းၼိူဝ် ဝၼ်းထိ/ၶၢဝ်းယၢမ်း တႃႇႁၼ်ၾၢႆႇ ၼႂ်းဝၼ်းၼၼ်ႉ",
+       "filehist-current": "ယၢမ်းလဵဝ်",
+       "filehist-datetime": "ဝၼ်းထီႉ/ၶၢဝ်းယၢမ်း",
+       "filehist-thumb": "ႁၢင်ႈလဵၵ်ႉ",
+       "filehist-thumbtext": "ၽၢင်ယဵမ်ႈ တွၼ်ႈတႃႇ ပိူဝ်းသျိၼ်းၼင်ႇ  $1",
+       "filehist-user": "ၽူႈၸႂ်ႉတိုဝ်း",
+       "filehist-dimensions": "သႅၼ်းမၼ်း",
+       "filehist-comment": "တၢင်းႁၼ်ထိုင်",
+       "imagelinks": "လွင်ႈၸႂ်ႉတိုဝ်း ၾၢႆႇ",
+       "linkstoimage": "{{PLURAL:$1|ၼႃႈလိၵ်ႈ|$1 ၼႃႈလိၵ်ႈ}} ၵွင်ႉမႃးၸူးၾၢႆႇၼႆႉ:",
+       "nolinkstoimage": "ဢမ်ႇမီးၼႃႈလိၵ်ႈဢၼ်ၵွင်ႉၸူး ၾၢႆႇဢၼ်ၼႆႉ",
+       "sharedupload-desc-here": "ၾၢႆႇဢၼ်ၼႆႉ လုၵ်ႉတီႈ $1 သေ တေၸၢင်ႈၵႂႃႇၸႂ်ႉ တီႈပရေႃးၵျႅၵ်ႉတၢင်ႇဢၼ်။\nဢၼ်တႅမ်ႈၼႄ တီႈၼႂ်း [$2 file description page] ၼၼ်ႉ တေၼႄပၼ် တီႈတႂ်ႈၼႆႉ။",
+       "upload-disallowed-here": "ၸဝ်ႈၵဝ်ႇတေဢမ်ႇၸၢင်ႈ တႅမ်တၢင်သႂ်ႇၼိူဝ် ၾၢႆႇဢၼ်ၼႆႉ",
+       "randompage": "ဢဝ်ၼႃႈလိၵ်ႈသၢင်ႇထုၵ်ႇဝႃႈ",
+       "nbytes": "$1 {{PLURAL:$1|ၿႆႉ|ၿႆႉ}}",
+       "nmembers": "$1 {{PLURAL:$1|member|ၽူႈၶဝ်ႈၸုမ်း}}",
+       "usercreated": "သၢင်ႈ​ဝႆႉ မိူဝ်ႈ $2 ဝၼ်း​ထီႉ $1",
+       "newpages": "ၼႃႈလိၵ်ႈမႂ်ႇ",
+       "pager-older-n": "{{PLURAL:$1|older 1|ဢၼ်ၵဝ်ႇၵဝ်ႇ $1}}",
+       "booksources": "ငဝ်ႈငႃႇ ပပ်ႉလိၵ်ႈ",
+       "booksources-search-legend": "ၶူၼ်ႉႁႃတႃႇ ငဝ်ႇငႃႇပပ်ႉ",
+       "booksources-search": "ၶူၼ်ႉႁႃ",
+       "log": "သၢႆမၢႆ",
+       "allpages": "ၼႃႈ​လိၵ်ႈ​တင်း​သဵင်ႈ",
+       "allarticles": "ၼႃႈ​လိၵ်ႈ​တင်း​သဵင်ႈ",
+       "allpagessubmit": "ၶူၼ်ႉႁႃ",
+       "categories": "လိူင်ႈ",
+       "mywatchlist": "သဵၼ်ႈမၢႆပႂ်ႉတူၺ်း",
+       "watch": "ပႂ်ႉတူၺ်း",
+       "dellogpage": "မွတ်ႇပႅတ်ႈ သၢႆမၢႆ",
+       "rollbacklink": "ထွႆပွၵ်ႈၶိုၼ်း",
+       "rollbacklinkcount": "ၵိင်ႈၶိုၼ်းလင် $1 {{PLURAL:$1|edit|မႄးထတ်း}}",
+       "protectlogpage": "မၢႆတမ်း ၵၢၼ်ႁေႉၵင်ႈ",
+       "undeleterevisions": "$1 {{PLURAL:$1|revision|revisions}} မွတ်ႇပႅတ်ႈယဝ်ႉ",
+       "undeletelink": "တူၺ်း/ၶိုၼ်းမိူၼ်ၵဝ်ႇ",
+       "undeleteviewlink": "တူၺ်း",
+       "namespace": "ဢွင်ႈတီႈၸိုဝ်ႈ",
+       "invert": "ပဵၼ်ႇၽၢႆႇ လွင်ႈလိူၵ်ႈသၢင်ႈ",
+       "tooltip-invert": "လိူၵ်ႈပၼ် လွၵ်းၼႆႉဝႃႈ တႃႇတေလပ်ႉဝႆႉ လွင်ႈလႅၵ်ႈလၢႆႈ ဢၼ်ႁဵတ်းၸူး ၼႃႈလိၵ်ႈၸိူဝ်းၼႆႉ ၸွမ်းၼင်ႇ ၸိုဝ်ႈ ၸိူဝ်းလိူၵ်ႈဝႆႉ (လႄႈ ၸွမ်းၼင်ႇၸိုဝ်ႈ ၸိူဝ်းဢၼ်လိူၵ်ႈဝႆႉယဝ်ႉၼၼ်ႉ)",
+       "namespace_association": "ဢွင်ႈတီႈၸိုဝ်ႈ ဢၼ်ၵွင်ႉၵၢႆႇဝႆႉ",
+       "tooltip-namespace_association": "လိူၵ်ႈပၼ် လွၵ်းၼႆႉ တႃႇတေႁႂ်ႈပႃး ၶေႃႈဢုပ်ႇဢူဝ်း ဢမ်ႇၼၼ် ၸိုဝ်ႈႁူဝ်ၶေႃႈ ဢၼ်ၵပ်းၵၢႆႇလူၺ်ႈ ႁူဝ်ၶေႃႈ ဢၼ်လိူၵ်ႈဝႆႉၼၼ်ႉ။",
+       "blanknamespace": "ႁူဝ်ႁႅၵ်ႇ",
+       "contributions": "{{GENDER:$1|User}} ၶဝ်ႈႁူမ်ႈပႃး",
+       "mycontris": "လွင်ႈၶဝ်ႈႁူမ်ႈ",
+       "anoncontribs": "လွင်ႈၶဝ်ႈႁူမ်ႈ",
+       "month": "တႄႇဢဝ်လိူၼ် (လႄႈ ဢၼ်ပူၼ်ႉမႃး):",
+       "year": "တႄႇဢဝ်ပီ (လႄႈ ဢၼ်ပူၼ်ႉမႃး):",
+       "whatlinkshere": "ႁဵင်းၵွင်ႉ ဢၼ်မီးတီႈၼႆႉ ပဵၼ်သင်",
+       "whatlinkshere-title": "ၼႃႈလိၵ်ႈၸိူဝ်းလိင်ႉၸူး \"$1\"",
+       "whatlinkshere-page": "ၼႃႈလိၵ်ႈ",
+       "linkshere": "ၼႃႈလိၵ်ႈၽၢႆႇတႂ်ႈၼႆႉ မၼ်းၵွင်ႉသၢၼ် ဝႆႉၸူး <strong>[[:$1]]</strong>:",
+       "isredirect": "ပိၼ်ႇႁူဝ်ၼႃႈလိၵ်ႈ",
+       "istemplate": "တူဝ်ၶဝ်ႈပႃး",
+       "isimage": "ၾၢႆႇၵွင်ႉ",
+       "whatlinkshere-prev": "{{PLURAL:$1|ဢၼ်ပူၼ်ႉမႃး|ဢၼ်ပူၼ်ႉမႃး $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|သိုပ်ႇၼႃႈ|သိုပ်ႇၼႃႈ $1}}",
+       "whatlinkshere-links": "ႁဵင်းၵွင်ႉ",
+       "whatlinkshere-hideredirs": "$1 လၢႆႈၽၢႆႇ",
+       "whatlinkshere-hidetrans": "သိူင်ႇတူဝ်ၶဝ်ႈပႃး",
+       "whatlinkshere-hidelinks": "$1 လိင်ႉၵွင်ႉ",
+       "whatlinkshere-filters": "တူဝ်ထွင်",
+       "blocklink": "ႁႄႉတတ်း",
+       "unblocklink": "ဢမ်ႇႁႄႉႁၢမ်ႈ",
+       "contribslink": "ၶဝ်ႈႁူမ်ႈ",
+       "movelogpage": "ၶၢႆႉသၢႆမၢႆ",
+       "revertmove": "ပိၼ်ႇပွၵ်ႈၶိုၼ်း",
+       "export": "သူင်ႇၼႃႈလိၵ်ႈဢွၵ်ႇ",
+       "thumbnail-more": "ႁၢင်ႈယႂ်ႇ",
+       "tooltip-pt-userpage": "ၼႃႈလိၵ်ႈသုၼ်ႇတူဝ်ၸဝ်ႈၵဝ်ႇ",
+       "tooltip-pt-mytalk": "ၼႃႈလိၵ်ႈသပ်းလႅင်းၸဝ်ႈၵဝ်ႇ",
+       "tooltip-pt-preferences": "{{GENDER:|ၸဝ်ႈၵဝ်ႇ}} ငဝ်ႈၵုမ်းပိူင်",
+       "tooltip-pt-watchlist": "သဵၼ်ႈမၢႆၼႃႈလိၵ်ႈ ဢၼ်ပႂ်ႉတူၺ်း တႃႇလႅၵ်ႈလၢႆႈ",
+       "tooltip-pt-mycontris": "သဵၼ်ႈမၢႆ ၶေႃႈလိၵ်ႈၸဝ်ႈၵဝ်ႇ",
+       "tooltip-pt-login": "ဢမ်ႇလွၵ်ႉဢိၼ်ႇၵေႃႈမူၼ်ႉမႄးလႆႈ ၵူၺ်း တိုၵ်းသူၼ်းႁႂ်ႈလွၵ်ႉဢိၼ်ႇ",
+       "tooltip-pt-logout": "လွၵ်ႉဢဝ်ႉ",
+       "tooltip-pt-createaccount": "ၸဝ်ႈၵဝ်ႇထုၵ်ႇပၼ်ႁႅင်း တွၼ်ႈတႃႇၵေႃႇသၢင်ႈ ဢၶွင်ႉလႄႈ လွၵ်ႉဢိၼ်ႇ။ ႁူမ်ႈဝႃႈၼၼ်သေတႃႉ ဢမ်ႇၸႂ်ႈဝႃႈ ဢမ်ႇႁဵတ်းဢမ်ႇလႆႈၼင်ႇၵဝ်ႇ။",
+       "tooltip-ca-talk": "ဢုပ်ႇဢူဝ်းလွင်ႈပႃးဝႆႉၼႂ်းၼႃႈလိၵ်ႈ",
+       "tooltip-ca-edit": "မႄးထတ်း ၼႃးလိၵ်ႈၼႆႉ",
+       "tooltip-ca-addsection": "တႄႇပွတ်းတွၼ်ႈမႂ်ႇ",
+       "tooltip-ca-viewsource": "ၼႃႈ​လိၵ်ႈ​ၼႆႉ ထုၵ်ႇ​ႁေႉ​ၵင်ႈ​ဝႆႉ။ သူ​ၸၢင်ႊ​တူၺ်း​ င​ဝ်ႈငႃႇမၼ်းလႆႈ",
+       "tooltip-ca-history": "လွင်ႈၶူၼ်ႉလူဢၼ်ပူၼ်ႉမႃး တႃႇၼႃႈလိၵ်ႈၼႆႉ",
+       "tooltip-ca-protect": "ႁေႉၵင်ႈ ၼႃႈလိၵ်ႈၼႆႉ",
+       "tooltip-ca-delete": "ယႃႉ ၼႃႈလိၵ်ႈၼႆႉ",
+       "tooltip-ca-move": "ၶၢႆႉ ၼႃႈလိၵ်ႈၼႆႉ",
+       "tooltip-ca-watch": "ဢဝ်ၼႃႈလိၵ်ႈၼႆႉ သႂ်ႇၼႂ်းသဵၼ်ႈမၢႆပႂ်ႉတူၺ်း",
+       "tooltip-search": "ၶူၼ်ႉႁႃ {{SITENAME}}",
+       "tooltip-search-go": "သင်ဝႃႈ မီးဝႆႉၸိုဝ်ႈ ၵႂႃႇၸူးၼႃႈလိၵ်ႈၸွမ်းၼင်ႇၸိုဝ်ႈၼႆႉ",
+       "tooltip-search-fulltext": "​ႁႃ​ပၼ် ၼႃႈ​လိၵ်ႈ ဢၼ်​ပႃး​တူဝ်​လိၵ်ႈ ၸိူ​ဝ်းၼႆႉလႄႈ",
+       "tooltip-p-logo": "ၶဝ်ႈလႄႇ ၼႃႈႁူဝ်ႁႅၵ်ႈ",
+       "tooltip-n-mainpage": "ၶဝ်ႈလႄႇ ၼႃႈႁူဝ်ႁႅၵ်ႈ",
+       "tooltip-n-mainpage-description": "ၶဝ်ႈလႄႇ ၼႃႈႁူဝ်ႁႅၵ်ႈ",
+       "tooltip-n-portal": "လိူင်ႈၶူင်းၵၢၼ်၊ သူႁဵတ်းသင်လႆႈ လႄႈ တေႁႃလႆႈၵႃႈလႂ်",
+       "tooltip-n-currentevents": "သွၵ်ႈႁႃ ​လွၼ်ႉၶၢဝ်ႇ ပိုၼ်ႉလင်တွၼ်ႈတႃႇ လွင်ႈႁဵတ်းသၢင်ႈယၢမ်းလဵဝ်ၼႆႉ",
+       "tooltip-n-recentchanges": "သဵၼ်ႈမၢႆမူၼ်ႉမႄးၼႂ်းဝီႇၶီႇ ဢၼ်ပႆႇႁိုင်",
+       "tooltip-n-randompage": "ပိုတ်ႇၼႃႈလိၵ်ႈသၢင်ႇထုၵ်ႇဝႃႈ",
+       "tooltip-n-help": "ဢွင်ႈတီႈ တႃႇသွၵ်ႈႁႃ",
+       "tooltip-t-whatlinkshere": "သဵၼ်ႈမၢႆ ၼႃႈလိၵ်ႈဝီႇၶီႇလိင်ႉတီႈၼႆႈ",
+       "tooltip-t-recentchangeslinked": "ၵၢၼ်လႅၵ်ႈလၢႆႈၼႂ်းၼႃႈလိၵ်ႈ ဢၼ်လုၵ်ႉတီႈၼႃႈလိၵ်ႈၼႆႉသေ လိင်ႉဝႆႉ",
+       "tooltip-feed-atom": "ၾိတ်ႉဢတွမ်ႊ(Atom) ၶွင်ႈၼႃႈလိၵ်ႈၼႆႉ",
+       "tooltip-t-contributions": "သဵၼ်ႈမၢႆလွင်ႈၶဝ်ႈႁူမ်ႈ တွၼ်ႈတႃႇ {{GENDER:$1|ၽူႈၸႂ်ႉတိုဝ်းၼႆ့}}",
+       "tooltip-t-upload": "လူတ်ႇၶိုၼ်ႈ ၾၢႆႇ",
+       "tooltip-t-specialpages": "ပိုတ်ႇၼႄသဵၼ်ႈ ၼႃႈ​လိၵ်ႈ ၶိုၵ်ႉ​တွၼ်း",
+       "tooltip-t-print": "ၼႃႈလိၵ်ႈၼႆႉ မၼ်းပဵၼ်ပိူဝ်းသျိၼ်း ဢၼ်ဢိတ်ႇဢွၵ်ႇလႆႈ",
+       "tooltip-t-permalink": "ႁဵင်းၵွင်ႉမၼ်ႈၵိုမ်းတႃႇၸူး ၼႃႈလိၵ်ႈၶူၼ်ႉလူဢၼ်ၼႆႉ",
+       "tooltip-ca-nstab-main": "တူၺ်းၼႃႈလိၵ်ႈလမ်းၼႂ်း",
+       "tooltip-ca-nstab-user": "တူၺ်းၼႃႈလိၵ်ႈၽူႈၸႂ်ႉတိုဝ်း",
+       "tooltip-ca-nstab-special": "ၼႃႈလိၵ်ႈၼႆႉပဵၼ် ၼႃႈလိၵ်ႈၶိုၵ်ႉတွၼ်း၊ ၸဝ်ႈၵဝ်ႇ တေဢမ်ႇၸၢင်ႈ မႄး​ထတ်းႁင်း ၸဝ်ႈၵဝ်ႇ ၶေႃၶေႃ။",
+       "tooltip-ca-nstab-project": "တူၺ်းၼႃႈလိၵ်ႈ ပရေႃးၵျႅၵ်ႉ",
+       "tooltip-ca-nstab-image": "တူၺ်းၼႃႈလိၵ်ႈၾၢႆႇ",
+       "tooltip-ca-nstab-template": "တူၺ်း ပိူင်တမ်း",
+       "tooltip-ca-nstab-category": "တူၺ်းလိူင်ႈမၼ်း",
+       "tooltip-save": "ၵဵပ်းသိမ်း လွင်ႈလႅၵ်ႈလၢႆႈ",
+       "tooltip-preview": "လူင်ႈၼႃႈတူၺ်း လွင်ႈလႅၵ်ႈလၢႆႈၸဝ်ႈၵဝ်ႇ၊ ၶႅၼ်းတေႃႈၸႂ်ႉပၼ် မိူဝ်ႈပႆႇသိမ်း",
+       "tooltip-diff": "ၼႄပၼ် လွင်ႈလႅၵ်ႈလၢႆႈ ၸိူဝ်းၸဝ်ႈၵဝ်ႇ ႁဵတ်းၵႂႃႇတီႈ တူဝ်လိၵ်ႈ",
+       "tooltip-rollback": "\"ႁူၼ်လင်ၶိုၼ်း\" ၼႆႉ မၼ်းတေဢဝ် ၼႃႈလိၵ်ႈၼႆႉ ၶိုၼ်းပိၼ်ႇဝၢႆႇၸူး ၸွမ်းၼင်ႇ ၽူႈႁူမ်ႈသၢင်ႈ ၵေႃႉလိုၼ်းသုတ်းၼၼ်ႉ ထတ်းသၢင်မႃး။",
+       "tooltip-undo": "\"Undo\" ၼႆ့ မၼ်းတေဢဝ် ၵၢၼ်ထတ်းသၢင်ဢၼ်ၼႆႉ ၶိုၼ်းပိၼ်ႇၸူးသေ ၶိုၼ်းပၼ် ပၼ် လၢႆးတူၺ်းလူင်ႈၼႃႈ တႃႇၵၢၼ်ထတ်းသၢင်ႈဢၼ်ၼႆႉ။ မၼ်းတေႁဵတ်းႁႂ်ႈၸဝ်ႈၵဝ်ႇ ထႅမ်သႂ်ႇ လွင်ႈတၢင်းမၼ်း ၵႃႈတီႈ လွၵ်းႁူဝ်ႁုပ်ႇမၼ်းၼၼ်ႉယူႇ။",
+       "tooltip-summary": "ထႅမ်သႂ်ႇ ၶေႃႈသပ်းလႅင်း ဢၼ်ၵႅပ်ႈ",
+       "simpleantispam-label": "ၵူတ်ႇထတ်း Anti-spam.\n<strong>ယႃႇပေ</strong>ထႅမ်ဢၼ်ၼႆႉသႂ်ႇ!",
+       "pageinfo-toolboxlink": "လွၼ်ႉၶၢဝ်ႇၼႃႈလိၵ်ႈ",
+       "previousdiff": "ၵၢၼ်မႄးထတ်း ဢၼ်ၵဝ်ႇ",
+       "nextdiff": "ထတ်းသၢင်ႈဢၼ်မႂ်ႇမႂ်ႇ",
+       "file-info-size": "$1 × $2 pixels, တၢင်းလဵၵ်ႉတၢင်းယႂ်ႇ ၾၢႆႇ: $3, ယိူင်ႈ MIME: $4",
+       "file-nohires": "ဢမ်ႇမီး ဢၼ်ႁႅင်းၸိုၼ်ႈသႂ်ႇမၼ်း သုင်သုင်",
+       "svg-long-desc": "ၾၢႆႇ SVG, ၸိုဝ်ႈ $1 × $2 pixels, သႅၼ်းၾၢႆႇ : $3",
+       "show-big-image": "ၾၢႆႇငဝ်ႈတိုၼ်း",
+       "show-big-image-preview": "သႅၼ်းတႃႇတူၺ်းလူင်ႈၼႃႈ: $1.",
+       "show-big-image-other": " {{PLURAL:$2|resolution|resolutions}}: $1 တၢင်ႇဢၼ်",
+       "show-big-image-size": "$1 × $2 ၽိၵ်ႉသိူဝ်ႇ",
+       "metadata": "ၶေႃႈမုၼ်းၼႅပ်ႇ",
+       "metadata-help": "ၾၢႆႇဢၼ်ၼႆႉ မၼ်းၶဝ်ႈပႃးဝႆႉလွၼ်ႉၶၢဝ်ႇ ထႅမ်သႂ်ႇမႂ်ႇ၊ ဢၼ်ဢၢပ်ႈထုၵ်ႉတီႈ ၵွင်ႈထႆႇ digital ဢမ်ႇၼၼ် တူဝ်ၵူတ်ႇ scanner ​ထႅမ်သႂ်ႇသေ သၢင်ႈဝႆႉ ဢမ်ႇၼၼ် လႅၵ်ႈလၢႆႈဝႆႉ။\nသင်ၸိူဝ်ႉၾၢႆႇဢၼ်ၼႆႉ ထုၵ်ႇမႄးၶိုၼ်းဝႆႉၵႃႈတီႈ ၾၢႆႇငဝ်ႈတိုၼ်းမၼ်းၼႆ ၼႂ်းၵႃႈ ၸဝ်ႈၵဝ်ႇမႄးဝႆႉၼၼ်ႉ မၼ်းတေဢမ်ႇထၢင်ႇႁၢင်ႈလႆႈ ၵူႈလွင်ႈ။",
+       "metadata-fields": "ၸိူဝ်းပဵၼ် လွၵ်းၶေႃႈမုၼ်းႁူဝ်ယွႆႈ တႃႇၶႅပ်းႁၢင်ႈ ဢၼ်မီးဝႆႉတီႈၼႂ်း ၶေႃႈၶၢဝ်ႇပွတ်း message ၼႆႉၼႆ မၼ်းတေၶဝ်ႈပႃးဝႆႉ ၵႃႈတီႈ ၼႃႈလိၵ်ႈၶႅပ်းႁၢင်ႈ ဢၼ်တေၼႄပၼ် ၽွင်းမိူဝ်ႈ လွၵ်းၶေႃႈမုၼ်းႁူဝ်ယွႆႈ လၼ်ႇၼႄပၼ်။\nဢၼ်ၵိုတ်းလိူဝ်ၸိူဝ်းၼၼ်ႉတႄႉ တေထုၵ်ႇလပ်ႉဝႆႉ ၸွမ်းၼင်ႇ ပိူင်ၵႅဝ်ႈမၼ်း။\n\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "exif-orientation": "ၼႃႈဝၢႆႇ",
+       "exif-xresolution": "ႁႅင်းၸိုၼ်ႈသႂ် ၼႃႈသုင်",
+       "exif-yresolution": "ႁႅင်းၸိုၼ်ႈသႂ် ၼႃႈယၢဝ်း",
+       "exif-datetime": "ဝၼ်းထီႉ လႄႈ ၶၢဝ်းယၢမ်း လႅၵ်ႈလၢႆႈၾၢႆႇ",
+       "exif-make": "ႁူင်းၵၢၼ်ႁဵတ်းဢွၵ်ႇ ၵွင်ႈထႆႇ",
+       "exif-model": "မေႃႇတႄႇ ၵွင်ႈထႆႇ",
+       "exif-software": "သွပ်ႉဝႄးၸိူဝ်းၸႂ်ႉမႃး",
+       "exif-exifversion": "ဢွၵ်ႇဝိူဝ်းသျိၼ်း",
+       "exif-colorspace": "ဢွင်ႈတီႈသီ",
+       "exif-datetimeoriginal": "ဝၼ်းလႄႈၶၢဝ်းယၢမ်း တမ်ႈတီႈ ၶေႃႈမုၼ်းမႂ်ႇ",
+       "exif-datetimedigitized": "ဝၼ်းထီႉလႄႈ ၶၢဝ်းယၢမ်းတႃႇ digitizing",
+       "exif-orientation-1": "သႃမၺ်း",
+       "namespacesall": "တင်းမူတ်း",
+       "monthsall": "တင်းမူတ်း",
+       "watchlistedit-normal-done": "{{PLURAL:$1|A single title was|$1 titles were}} ဢဝ်ဢွၵ်ႇ တမ်ႈတီႈ သဵၼ်ႈဢၼ်ၸဝ်ႈၵဝ်ႇ ပႂ်ႉတူၺ်း",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|talk]])",
+       "specialpages": "ၼႃႈလိၵ်ႈ ၶိုၵ်ႉတွၼ်း",
+       "tag-filter": "ၶတ်းလိူၵ်ႈဢဝ်[[Special:Tags|Tag]]:",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
+       "logentry-delete-delete": "$1 {{GENDER:$2|မွတ်ႇယဝ်ႉ}} ၼႃႈလိၵ်ႈ $3",
+       "logentry-move-move": "$1 {{GENDER:$2|ၶၢႆႉယဝ်ႉ}} ၼႃႈလိၵ်ႈ $3 တေႃႇ $4",
+       "logentry-newusers-create": "ဢၶွင်ႉၽူႈၸႂ်ႉတိုဝ်း $1 ၼႆႉ လႆႈ  {{GENDER:$2|ၵေႃႇသၢင်ႈယဝ်ႉ}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|လူတ်ႇၶိုၼ်ႈၵႂႃႇယဝ်ႉ}} $3",
+       "searchsuggest-search": "ၶူၼ်ႉႁႃ",
+       "mw-widgets-dateinput-no-date": "ပႆႇလိူၵ်ႈဝၼ်းယၢမ်း"
+}
index ac9345e..d6d55de 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|prejšnji|prejšnja $1|prejšnji $1|prejšnjih $1|prejšnjih $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|naslednji|naslednja $1|naslednji $1|naslednjih $1|naslednjih $1}}",
        "whatlinkshere-links": "← povezave",
-       "whatlinkshere-hideredirs": "Skrij preusmeritve",
-       "whatlinkshere-hidetrans": "Skrij vključitve",
-       "whatlinkshere-hidelinks": "Skrij povezave",
-       "whatlinkshere-hideimages": "Skrij povezave datotek",
+       "whatlinkshere-hideredirs": "$1 preusmeritve",
+       "whatlinkshere-hidetrans": "$1 vključitve",
+       "whatlinkshere-hidelinks": "$1 povezave",
+       "whatlinkshere-hideimages": "$1 povezave datotek",
        "whatlinkshere-filters": "Filtri",
        "whatlinkshere-submit": "Pojdi",
        "autoblockid": "Samodejna blokada št. $1",
index b804acd..739ae99 100644 (file)
        "pool-timeout": "Mbaroi koha duke pritur për kyçin",
        "pool-queuefull": "Radha e proceseve është mbushur",
        "pool-errorunknown": "Gabim i panjohur",
-       "pool-servererror": "Pishinë e  numerimit  te shërbimit nuk është në dispozicion (<span class=\"notranslate\" translate=\"asnjë\">$1</span>).",
+       "pool-servererror": "Pishinë e  numerimit  te shërbimit nuk është në dispozicion ($1).",
        "poolcounter-usage-error": "Gabim përdorimi: $1",
        "aboutsite": "Rreth {{SITENAME}}",
        "aboutpage": "Project:Rreth",
        "databaseerror-text": "\nKjo mund të tregojë një gabim në software.",
        "databaseerror-textcl": " ka ndodhur  një   gabim ne query te bazën të dhënash",
        "databaseerror-query": "\nPyetje: $ 1",
-       "databaseerror-function": "Funksioni: <span class=\"notranslate\" translate=\"asnjë\">$1</span>",
-       "databaseerror-error": "Gabim: <span class=\"notranslate\" translate=\"asnjë\">$1</span>",
+       "databaseerror-function": "Funksioni: $1",
+       "databaseerror-error": "Gabim: $1",
        "laggedslavemode": "'''Kujdes:''' Kjo faqe nuk mund të ketë përditësime të kohëve të fundit.",
        "readonly": "Databaza e kyçur",
        "enterlockreason": "Shëno arsyen e kyçjes, gjithashtu shëno se kur mund të hapet.",
        "filerenameerror": "I pamundur riemërtimi i skedës \"$1\" në \"$2\".",
        "filedeleteerror": "E pamundur fshirja e skedës \"$1\".",
        "directorycreateerror": "I pamundur krijimi i direktorisë \"$1\".",
-       "directoryreadonlyerror": "Direktoria \"<span class=\"notranslate\" translate=\"asnjë\">$1</span>\" është vetëm e lexueshme",
-       "directorynotreadableerror": "Direktoria \"<span class=\"notranslate\" translate=\"asnjë\">$1</span>\" nuk është e lexueshme.",
+       "directoryreadonlyerror": "Direktoria \"$1\" është vetëm e lexueshme",
+       "directorynotreadableerror": "Direktoria \"$1\" nuk është e lexueshme.",
        "filenotfound": "E pamundur gjetja e skedës \"$1\".",
        "unexpected": "Vlerë e papritur: \"$1\"=\"$2\".",
        "formerror": "Gabim: Formulari nuk mund të dërgohet.",
        "invalidtitle-unknownnamespace": "Titull jo i vlefshëm me numrin e panjohur të hapësirës së emrit $1 dhe tekstit \"$2\"",
        "exception-nologin": "I paqasur",
        "exception-nologin-text": "Ju lutem [[Special:Userlogin|hyni brënda]] për të qenë  në gjendje të hyni në këtë faqe ose veprim.",
-       "exception-nologin-text-manual": "Ju lutem <span class=\"notranslate\" translate=\"asnjë\">$1</span> që të jeni në gjendje për të hyrë në këtë faqe ose të veproni.",
+       "exception-nologin-text-manual": "Ju lutem $1 që të jeni në gjendje për të hyrë në këtë faqe ose të veproni.",
        "virus-badscanner": "Konfiguracion i parregullt: Skaner i panjohur virusesh: ''$1''",
        "virus-scanfailed": "skanimi dështoi (code $1)",
        "virus-unknownscanner": "antivirus i pa njohur:",
        "userlogin-resetlink": "Ke harruar të dhënat e tua të identifikimit?",
        "userlogin-resetpassword-link": "Keni harruar fjalëkalimin?",
        "userlogin-helplink2": "Ndihmë rreth identifikimit",
-       "userlogin-loggedin": "Ju tashmë janë të regjistruar si <span class=\"notranslate\" translate=\"asnjë\">{{GJINIA:$1|</span><span class=\"notranslate\" translate=\"asnjë\">$1</span>}}.\nPërdorim formularin më poshtë që të hyni në si një përdorues tjetër.",
+       "userlogin-loggedin": "Ju tashmë janë të regjistruar si {{GENDER:$1|$1}}.\nPërdorim formularin më poshtë që të hyni në si një përdorues tjetër.",
        "userlogin-createanother": "Krijo një llogari tjeter",
        "createacct-emailrequired": "Posta elektronike",
        "createacct-emailoptional": "Adresa Elektronike (me dëshirë)",
        "resetpass-validity-soft": "Fjalëkalimi juaj ka skaduar dhe duhet të rivendoset. Ju lutem zgjidhni një fjalëkalim të ri tani, ose klikoni \"{{int:resetpass-submit-cancel}}\" për ta rivendosur më vonë.",
        "passwordreset": "Ndrysho fjalkalimin",
        "passwordreset-text-one": "Plotësoni këtë formular për të marrë një fjalëkalim të përkohshëm nëpërmjet postës elektronike.",
-       "passwordreset-text-many": "<span class=\"notranslate\" translate=\"asnjë\">{{PLURAL:$1|</span>Mbush një nga fushat për të marrë një fjalëkalim të përkohshëm nëpërmjet postës elektronike.}}",
+       "passwordreset-text-many": "{{PLURAL:$1|Mbush një nga fushat për të marrë një fjalëkalim të përkohshëm nëpërmjet postës elektronike.}}",
        "passwordreset-disabled": "Rivendosja e fjalëkalimit është deaktivizuar në këtë wiki.",
        "passwordreset-emaildisabled": "Karakteristikat e  Email janë të paaftë në këtë wiki.",
        "passwordreset-username": "Nofka:",
index 59e50e2..af59a1e 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|претходни|претходних $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|следећи|следећих $1}}",
        "whatlinkshere-links": "← везе",
-       "whatlinkshere-hideredirs": "Сакриј преусмерења",
-       "whatlinkshere-hidetrans": "Сакриј укључивања",
-       "whatlinkshere-hidelinks": "Сакриј везе",
+       "whatlinkshere-hideredirs": "$1 преусмерења",
+       "whatlinkshere-hidetrans": "$1 укључивања",
+       "whatlinkshere-hidelinks": "$1 везе",
        "whatlinkshere-hideimages": "$1 везе до датотеке",
        "whatlinkshere-filters": "Филтери",
        "whatlinkshere-submit": "Иди",
index e786f12..5fdc44d 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|prethodni|prethodnih $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|sledeći|sledećih $1}}",
        "whatlinkshere-links": "← veze",
-       "whatlinkshere-hideredirs": "Sakrij preusmerenja",
-       "whatlinkshere-hidetrans": "Sakrij uključivanja",
-       "whatlinkshere-hidelinks": "Sakrij veze",
+       "whatlinkshere-hideredirs": "$1 preusmerenja",
+       "whatlinkshere-hidetrans": "$1 uključivanja",
+       "whatlinkshere-hidelinks": "$1 veze",
        "whatlinkshere-hideimages": "$1 veze do datoteke",
        "whatlinkshere-filters": "Filteri",
        "whatlinkshere-submit": "Idi",
index 50a8700..4f102bf 100644 (file)
        "password-change-forbidden": "Du kan inte ändra lösenord på denna wiki.",
        "externaldberror": "Antingen inträffade autentiseringsproblem med en extern databas, eller så får du inte uppdatera ditt externa konto.",
        "login": "Logga in",
+       "login-security": "Verifiera din identitet",
        "nav-login-createaccount": "Logga in / skapa konto",
        "userlogin": "Logga in / skapa konto",
        "userloginnocreate": "Logga in",
        "userlogin-resetpassword-link": "Glömt ditt lösenord?",
        "userlogin-helplink2": "Hjälp med inloggning",
        "userlogin-loggedin": "Du är redan inloggad som {{GENDER:$1|$1}}.\nAnvänd formuläret nedan för att logga in som en annan användare.",
+       "userlogin-reauth": "Du måste logga in för att verifiera att du är {{GENDER:$1|$1}}.",
        "userlogin-createanother": "Skapa ett annat konto",
        "createacct-emailrequired": "E-postadress",
        "createacct-emailoptional": "E-postadress (valfritt)",
        "createacct-email-ph": "Bekräfta din e-postadress",
        "createacct-another-email-ph": "Skriv in e-postadress",
        "createaccountmail": "Använd ett tillfälligt slumpvis valt lösenord och skicka det till den angivna e-postadressen",
+       "createaccountmail-help": "Kan användas för att skapa ett konto åt en annan person utan att kunna lösenordet.",
        "createacct-realname": "Riktigt namn (valfritt)",
        "createaccountreason": "Orsak:",
        "createacct-reason": "Orsak",
        "createacct-reason-ph": "Varför du skapar ett annat konto",
+       "createacct-reason-help": "Meddelande som visas i loggen för skapade konton",
        "createacct-submit": "Skapa ditt konto",
        "createacct-another-submit": "Skapa konto",
+       "createacct-continue-submit": "Fortsätt att skapa konto",
+       "createacct-another-continue-submit": "Fortsätt att skapa konto",
        "createacct-benefit-heading": "{{SITENAME}} är skapad av människor som dig.",
        "createacct-benefit-body1": "{{PLURAL:$1|redigering|redigeringar}}",
        "createacct-benefit-body2": "{{PLURAL:$1|sida|sidor}}",
        "nocookiesnew": "Användarkontot skapades, men du är inte inloggad.\n{{SITENAME}} använder kakor för att logga in användare.\nDu har kakor inaktiverade.\nAktivera dem, och logga sedan in med ditt nya användarnamn och lösenord.",
        "nocookieslogin": "{{SITENAME}} använder kakor för att logga in användare. Du har stängt av kakor i din webbläsare. Försök igen med stöd för kakor aktiverat.",
        "nocookiesfornew": "Användarkontot skapades inte, eftersom vi inte kunde bekräfta dess källa.\nSe till att du har aktiverat kakor, ladda om denna sida och försök igen.",
+       "createacct-loginerror": "Kontot skapades men du kunde inte loggas in automatiskt. Var god [[Special:UserLogin|logga in manuellt]].",
        "noname": "Du har angett ett ogiltigt användarnamn.",
        "loginsuccesstitle": "Inloggad",
        "loginsuccess": "'''Du är nu inloggad på {{SITENAME}} som \"$1\".'''",
        "createacct-another-realname-tip": "Riktigt namn behöver inte anges.\nOm du väljer att ange det, kommer det att användas för att tillskriva dig ditt arbete.",
        "pt-login": "Logga in",
        "pt-login-button": "Logga in",
+       "pt-login-continue-button": "Fortsätt att logga in",
        "pt-createaccount": "Skapa konto",
        "pt-userlogout": "Logga ut",
        "php-mail-error-unknown": "Okänt fel i PHP:s mail()-funktion",
        "botpasswords-invalid-name": "Det angivna användarnamnet innehåller inte separatorn för botlösenord (\"$1\").",
        "botpasswords-not-exist": "Användaren \"$1\" har inte ett botlösenord som är \"$2\".",
        "resetpass_forbidden": "Lösenord kan inte ändras",
+       "resetpass_forbidden-reason": "Lösenorden kan inte ändras: $1",
        "resetpass-no-info": "Du måste vara inloggad för att komma åt den här sidan direkt.",
        "resetpass-submit-loggedin": "Ändra lösenord",
        "resetpass-submit-cancel": "Avbryt",
        "passwordreset-emailsentusername": "Om det finns en e-postadress som associeras med detta användarnamn kommer en lösenordsåterställning skickas via e-post.",
        "passwordreset-emailsent-capture": "En lösenordsåterställning via e-post har skickats, som visas nedan.",
        "passwordreset-emailerror-capture": "En lösenordsåterställning via e-post har skapats, som visas nedan, men det gick inte att skicka den till {{GENDER:$2|användaren}}: $1",
+       "passwordreset-emailsent-capture2": "{{PLURAL:$1|E-postmeddelande|E-postmeddelanden}} för återställning av lösenord har skickats. {{PLURAL:$1|Användarnamnet och lösenordet|Listan över användarnamn och lösenord}} visas nedan.",
+       "passwordreset-emailerror-capture2": "Kunde inte skicka e-post till {{GENDER:$2|användaren}}: $1 {{PLURAL:$3|Användarnamnet och lösenordet|Listan över användarnamn och lösenord}} listas nedan.",
+       "passwordreset-invalideamil": "Ogiltig e-postadress",
+       "passwordreset-nodata": "Varken ett användarnamn eller en e-postadress angavs",
        "changeemail": "Ändra eller ta bort e-postadress",
        "changeemail-header": "Fyll i detta formulär för att ändra din e-postadress. Lämna fältet för ny e-postadress tomt när du skickar in formuläret om du vill ta bort en associerad e-postadress från ditt konto.",
        "changeemail-passwordrequired": "Du måste ange ditt lösenord för att bekräfta denna ändring.",
        "whatlinkshere-prev": "{{PLURAL:$1|förra|förra $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|nästa|nästa $1}}",
        "whatlinkshere-links": "← länkar",
-       "whatlinkshere-hideredirs": "Dölj omdirigeringar",
-       "whatlinkshere-hidetrans": "Dölj inkluderingar",
-       "whatlinkshere-hidelinks": "Dölj länkar",
-       "whatlinkshere-hideimages": "Dölj fillänkar",
+       "whatlinkshere-hideredirs": "$1 omdirigeringar",
+       "whatlinkshere-hidetrans": "$1 inkluderingar",
+       "whatlinkshere-hidelinks": "$1 länkar",
+       "whatlinkshere-hideimages": "$1 fillänkar",
        "whatlinkshere-filters": "Filter",
        "whatlinkshere-submit": "Gå",
        "autoblockid": "Autoblockera #$1",
        "log-action-filter-suppress-block": "Användarcensur efter blockering",
        "log-action-filter-suppress-reblock": "Användarcensur efter återblockering",
        "log-action-filter-upload-upload": "Ny uppladdning",
-       "log-action-filter-upload-overwrite": "Återuppladdning"
+       "log-action-filter-upload-overwrite": "Återuppladdning",
+       "authmanager-create-disabled": "Kontoregistrering är inaktiverat.",
+       "authmanager-create-from-login": "Fyll i fälten nedan för att skapa ditt konto.",
+       "authmanager-authplugin-setpass-failed-title": "Kunde inte ändra lösenordet",
+       "authmanager-authplugin-setpass-bad-domain": "Ogiltig domän.",
+       "authmanager-autocreate-noperm": "Det är inte tillåtet att skapa konton automatiskt.",
+       "authmanager-userdoesnotexist": "Användarkontot \"$1\" är inte registrerat.",
+       "authmanager-username-help": "Användarnamn för autentisering.",
+       "authmanager-password-help": "Lösenord för autentisering.",
+       "authmanager-domain-help": "Domän för extern autentisering.",
+       "authmanager-retype-help": "Lösenord igen för att bekräfta.",
+       "authmanager-email-label": "E-post",
+       "authmanager-email-help": "E-postadress",
+       "authmanager-realname-label": "Riktigt namn",
+       "authmanager-realname-help": "Användarens riktiga namnet",
+       "authmanager-provider-password": "Lösenordsbaserad autentisering",
+       "authmanager-provider-password-domain": "Lösenord- och domänbaserad autentisering",
+       "authmanager-provider-temporarypassword": "Tillfälligt lösenord",
+       "authprovider-confirmlink-message": "Baserat på dina nyliga inloggningsförsök kan följande konton länkas till ditt wikikonto. Om dessa konton länkas kan du logga in via dem. Välj vilka som bör länkas.",
+       "authprovider-confirmlink-request-label": "Konton som bör vara länkade",
+       "authprovider-confirmlink-success-line": "$1: Länkning genomförd.",
+       "authprovider-confirmlink-failed": "Konto kunde inte länkas helt och hållet: $1",
+       "authprovider-resetpass-skip-label": "Hoppa över",
+       "authprovider-resetpass-skip-help": "Hoppa över återställningen av lösenord.",
+       "authform-nosession-signup": "Kontot skapades, men din webbläsare kan inte \"komma ihåg\" att du är inloggad.\n\n$1",
+       "specialpage-securitylevel-not-allowed-title": "Inte tillåtet",
+       "specialpage-securitylevel-not-allowed": "Tyvärr, du har inte tillåtelse att använda denna sida eftersom din identitet inte kunde verifieras.",
+       "cannotauth-not-allowed-title": "Tillgång nekad",
+       "changecredentials-submit": "Ändra",
+       "changecredentials-submit-cancel": "Avbryt",
+       "removecredentials-submit": "Ta bort",
+       "removecredentials-submit-cancel": "Avbryt",
+       "credentialsform-account": "Kontonamn:",
+       "cannotlink-no-provider-title": "Det finns inga konton som kan länkas",
+       "cannotlink-no-provider": "Det finns inga konton som kan länkas.",
+       "linkaccounts": "Länka konton",
+       "linkaccounts-success-text": "Kontot länkades.",
+       "linkaccounts-submit": "Länka konton",
+       "unlinkaccounts": "Avlänka konton",
+       "unlinkaccounts-success": "Kontot avlänkades."
 }
index 2070932..881e73e 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|ก่อนหน้า|ก่อนหน้า $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|ถัดไป|ถัดไป $1}}",
        "whatlinkshere-links": "← ลิงก์",
-       "whatlinkshere-hideredirs": "ซ่อนการเปลี่ยนทาง",
-       "whatlinkshere-hidetrans": "Hide transclusions",
-       "whatlinkshere-hidelinks": "ซ่อนลิงก์",
-       "whatlinkshere-hideimages": "ซ่อนลิงก์ไฟล์",
+       "whatlinkshere-hideredirs": "$1การเปลี่ยนทาง",
+       "whatlinkshere-hidetrans": "$1 ถูกรวมอยู่",
+       "whatlinkshere-hidelinks": "$1 ลิงก์",
+       "whatlinkshere-hideimages": "$1ลิงก์ไฟล์",
        "whatlinkshere-filters": "ตัวกรอง",
        "whatlinkshere-submit": "ไป",
        "autoblockid": "บล็อกอัตโนมัติ #$1",
index 16f13b9..76c0a1d 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|önceki|önceki $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|sonraki|sonraki $1}}",
        "whatlinkshere-links": "← bağlantılar",
-       "whatlinkshere-hideredirs": "Yönlendirmeleri gizle",
-       "whatlinkshere-hidetrans": "Dönüştürmeleri gizle",
-       "whatlinkshere-hidelinks": "Bağlantıları gizle",
+       "whatlinkshere-hideredirs": "Yönlendirmeleri $1",
+       "whatlinkshere-hidetrans": "Dönüştürmeleri $1",
+       "whatlinkshere-hidelinks": "Bağlantıları $1",
        "whatlinkshere-hideimages": "Dosya bağlantılarını $1",
        "whatlinkshere-filters": "Süzgeçler",
        "autoblockid": "Otomatik engelleme #$1",
index cee7a0d..54476d7 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|1=алдагы}} $1",
        "whatlinkshere-next": "{{PLURAL:$1|1=киләсе}} $1",
        "whatlinkshere-links": "← сылтамалар",
-       "whatlinkshere-hideredirs": "Юнәлтүләрне яшер",
-       "whatlinkshere-hidetrans": "Ð\9aеÑ\80Ñ\82үлÓ\99Ñ\80не Ñ\8fÑ\88еÑ\80",
-       "whatlinkshere-hidelinks": "Сылтамаларны яшер",
-       "whatlinkshere-hideimages": "Файл сылтамаларын яшер",
+       "whatlinkshere-hideredirs": "Юнәлтүләрне $1",
+       "whatlinkshere-hidetrans": "кеÑ\80Ñ\82үлÓ\99Ñ\80не $1",
+       "whatlinkshere-hidelinks": "Сылтамаларны $1",
+       "whatlinkshere-hideimages": "$1 файл сылтамалары",
        "whatlinkshere-filters": "Фильтрлар",
        "whatlinkshere-submit": "Башкару",
        "autoblockid": "Автотыю #$1",
index 3e57c4e..c8964aa 100644 (file)
        "rcnotefrom": "Alemba oma anttud toižetused '''$2'''-späi ( '''$1'''-hesai).",
        "rclistfrom": "Ozutada uded toižetused dataspäi $3 $2 augotaden",
        "rcshowhideminor": "$1 pened redakcijad",
+       "rcshowhideminor-show": "Ozutada",
        "rcshowhideminor-hide": "Peitta",
        "rcshowhidebots": "$1 botad",
        "rcshowhidebots-show": "Ozutada",
+       "rcshowhidebots-hide": "Peitta",
        "rcshowhideliu": "$1 sistemha kirjutadud kävutajad",
        "rcshowhideliu-hide": "Peitta",
        "rcshowhideanons": "$1 anonimišt kävutajad",
        "rcshowhideanons-hide": "Peitta",
        "rcshowhidepatr": "$1 kodvdud toižetust",
        "rcshowhidemine": "$1 ičein redakcijad",
+       "rcshowhidemine-show": "Ozutada",
        "rcshowhidemine-hide": "Peitta",
        "rclinks": "Ozutada jäl'gmäižed $1 toižetust $2 päiväs<br />$3",
        "diff": "erod",
        "booksources": "Kirjpurtked",
        "booksources-search-legend": "Ectä kirjpurtkid",
        "booksources-isbn": "ISBN:",
+       "booksources-search": "Ectä",
        "booksources-text": "Naku om kosketusid saitoile, kudambil mödas uzid da kuluid kirjoid. Niilpäi voib löuta ližainformacijad ectud kirjoiš:",
        "booksources-invalid-isbn": "Nece ISBN, näguse, om vär; Kodvgat, oikti-k oled kopiruinuded sidä originaližes purtkespäi.",
        "specialloguserlabel": "Kävutai:",
index 67005f6..65cae9d 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|kết quả trước|$1 kết quả trước}}",
        "whatlinkshere-next": "{{PLURAL:$1|kết quả sau|$1 kết quả sau}}",
        "whatlinkshere-links": "← liên kết",
-       "whatlinkshere-hideredirs": "Ẩn trang đổi hướng",
+       "whatlinkshere-hideredirs": "$1 trang đổi hướng",
        "whatlinkshere-hidetrans": "$1 trang nhúng",
-       "whatlinkshere-hidelinks": "Ẩn liên kết",
-       "whatlinkshere-hideimages": "Ẩn liên kết tập tin",
+       "whatlinkshere-hidelinks": "$1 liên kết",
+       "whatlinkshere-hideimages": "$1 liên kết tập tin",
        "whatlinkshere-filters": "Bộ lọc",
        "whatlinkshere-submit": "Xem",
        "autoblockid": "Cấm tự động #$1",
index f563ad9..150046d 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|nahiuna|nahiuna $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|masunod|masunod $1}}",
        "whatlinkshere-links": "← mga sumpay",
-       "whatlinkshere-hideredirs": "Igtago an mga redirect",
-       "whatlinkshere-hidetrans": "Igtago an mga tranclusion",
-       "whatlinkshere-hidelinks": "Igtago an mga sumpay",
-       "whatlinkshere-hideimages": "Igtago an mga sumpay han file",
+       "whatlinkshere-hideredirs": "$1 nga mga redirek",
+       "whatlinkshere-hidetrans": "$1 nga mga transklusyon",
+       "whatlinkshere-hidelinks": "$1 an mga sumpay",
+       "whatlinkshere-hideimages": "$1 an mga sumpay han paypay",
        "whatlinkshere-filters": "Mga panara",
        "whatlinkshere-submit": "Kadto-a",
        "block": "Pugngi an gumaramit",
index 2f414df..292a25d 100644 (file)
@@ -59,7 +59,7 @@ class RecompressTracked {
        public $reportingInterval = 10;
        public $numProcs = 1;
        public $numBatches = 0;
-       public $useDiff, $pageBlobClass, $orphanBlobClass;
+       public $pageBlobClass, $orphanBlobClass;
        public $slavePipes, $slaveProcs, $prevSlaveId;
        public $copyOnly = false;
        public $isChild = false;
@@ -112,8 +112,8 @@ class RecompressTracked {
                } elseif ( $this->slaveId !== false ) {
                        $GLOBALS['wgDebugLogPrefix'] = "RCT {$this->slaveId}: ";
                }
-               $this->useDiff = function_exists( 'xdiff_string_bdiff' );
-               $this->pageBlobClass = $this->useDiff ? 'DiffHistoryBlob' : 'ConcatenatedGzipHistoryBlob';
+               $this->pageBlobClass = function_exists( 'xdiff_string_bdiff' ) ?
+                       'DiffHistoryBlob' : 'ConcatenatedGzipHistoryBlob';
                $this->orphanBlobClass = 'ConcatenatedGzipHistoryBlob';
        }
 
index ecd10fa..f9c6117 100644 (file)
@@ -5,12 +5,12 @@
 body {
        margin: 0;
        background: #eee;
-       font-family: Verdana;
+       font-family: 'Verdana';
        color: #333;
 }
 
 #main {
-       border: 1px solid #D0D0D0;
+       border: 1px solid #d0d0d0;
        background: #fff;
        margin: 0.5em;
 }
@@ -25,7 +25,7 @@ body {
        border-left: 1px dotted #ccc;
        float: right;
        width: 230px;
-       background: white;
+       background: #fff;
        margin: 0 0 10px 10px;
 }
 
index 0e0b304..66f8578 100644 (file)
 }
 
 .error {
-       color: red;
+       color: #f00;
        background-color: #fff;
        font-weight: bold;
        left: 1em;
 .success-message {
        font-weight: bold;
        font-size: 110%;
-       color: green;
+       color: #0f0;
 }
 
 .success-box {
index 394f36e..8bc9ca4 100644 (file)
     "grunt-contrib-watch": "1.0.0",
     "grunt-jscs": "2.8.0",
     "grunt-jsonlint": "1.0.7",
-    "grunt-karma": "0.12.2",
+    "grunt-karma": "1.0.0",
+    "grunt-stylelint": "0.3.0",
     "karma": "0.13.22",
-    "karma-chrome-launcher": "0.2.2",
-    "karma-firefox-launcher": "0.1.7",
-    "karma-qunit": "0.1.9",
-    "qunitjs": "1.22.0"
+    "karma-chrome-launcher": "1.0.1",
+    "karma-firefox-launcher": "1.0.0",
+    "karma-qunit": "1.0.0",
+    "qunitjs": "1.22.0",
+    "stylelint-config-wikimedia": "0.1.0"
   }
 }
index b2e2bd4..b31fe82 100644 (file)
@@ -88,9 +88,6 @@ return call_user_func( function () {
                'skipFunction' => 'resources/src/oojs-ui-styles-skip.js',
        ];
 
-       // Deprecated old name for the module 'oojs-ui-core.styles'.
-       $modules['oojs-ui.styles'] = $modules['oojs-ui-core.styles'];
-
        // Additional widgets and layouts module.
        $modules['oojs-ui-widgets'] = [
                'scripts' => 'resources/lib/oojs-ui/oojs-ui-widgets.js',
index 33d9a00..5689256 100644 (file)
@@ -7,9 +7,9 @@
 .tipsy-inner {
        padding: 5px 8px 4px 8px;
        /*background-color: #e8f2f8;*/
-       background-color: #ffffff;
+       background-color: #fff;
        border: solid 1px #a7d7f9;
-       color: black;
+       color: #000;
        max-width: 15em;
        border-radius: 4px;
        /*
index f8f6e95..254836a 100644 (file)
@@ -1,7 +1,7 @@
 .arrowSteps {
        list-style-type: none;
        list-style-image: none;
-       border: 1px solid #666666;
+       border: 1px solid #666;
        position: relative;
 }
 
index 34cdf76..31158f7 100644 (file)
@@ -11,7 +11,7 @@
 
 .mw-badge-content {
        font-weight: bold;
-       color: white;
+       color: #fff;
        vertical-align: baseline;
        text-shadow: 0 1px rgba(0, 0, 0, 0.4);
 }
@@ -32,5 +32,5 @@
 }
 
 .mw-badge-important {
-       background-color: #cc0000;
+       background-color: #c00;
 }
index 15cd926..f6b4fd1 100644 (file)
@@ -14,9 +14,9 @@
 
 .suggestions-special {
        position: relative;
-       background-color: white;
+       background-color: #fff;
        cursor: pointer;
-       border: solid 1px #aaaaaa;
+       border: solid 1px #aaa;
        padding: 0;
        margin: 0;
        margin-top: -2px;
 }
 
 .suggestions-results {
-       background-color: white;
+       background-color: #fff;
        cursor: pointer;
-       border: solid 1px #aaaaaa;
+       border: solid 1px #aaa;
        padding: 0;
        margin: 0;
 }
 
 .suggestions-result {
-       color: black;
+       color: #000;
        margin: 0;
        line-height: 1.5em;
        padding: 0.01em 0.25em;
 }
 
 .suggestions-result-current {
-       background-color: #4C59A6;
-       color: white;
+       background-color: #4c59a6;
+       color: #fff;
 }
 
 .suggestions-special .special-label {
-       color: gray;
+       color: #808080;
        text-align: left;
 }
 
 .suggestions-special .special-query {
-       color: black;
+       color: #000;
        font-style: italic;
        text-align: left;
 }
 
 .suggestions-special .special-hover {
-       background-color: silver;
+       background-color: #c0c0c0;
 }
 
 .suggestions-result-current .special-label,
 .suggestions-result-current .special-query {
-       color: white;
+       color: #fff;
 }
 
 .highlight {
index 292318c..835383e 100644 (file)
@@ -4,6 +4,6 @@
 }
 
 span.updatedmarker {
-       color: black;
+       color: #000;
        background-color: #0f0;
 }
index 0887476..9db6777 100644 (file)
@@ -72,7 +72,7 @@ td.diff-deletedline {
 td.diff-context {
        background: #f9f9f9;
        border-color: #e6e6e6;
-       color: #333333;
+       color: #333;
 }
 
 .diffchange {
index 5112728..450517e 100644 (file)
@@ -38,7 +38,7 @@ table.filehistory td.filehistory-selected {
 .filehistory a img,
 #file img:hover {
        /* @embed */
-       background: white url(images/checker.png) repeat;
+       background: #fff url(images/checker.png) repeat;
 }
 
 /*
@@ -46,7 +46,7 @@ table.filehistory td.filehistory-selected {
  */
 ul#filetoc {
        text-align: center;
-       border: 1px solid #aaaaaa;
+       border: 1px solid #aaa;
        background-color: #f9f9f9;
        padding: 5px;
        font-size: 95%;
index db89990..a02b4b4 100644 (file)
        font-size: 1.25em;
        font-weight: bold;
        line-height: 2.3em;
-       color: black;
-       text-shadow: 0 0.0625em 0 white;
+       color: #000;
+       text-shadow: 0 0.0625em 0 #fff;
        text-decoration: none;
        opacity: 0.2;
        filter: alpha(opacity=20);
 }
 
 .postedit-close:hover {
-       color: black;
+       color: #000;
        text-decoration: none;
        opacity: 0.4;
        filter: alpha(opacity=40);
index 9adfba1..c58bcc8 100644 (file)
@@ -80,7 +80,7 @@ table.rimage {
 div.thumb {
        margin-bottom: .5em;
        border-style: solid;
-       border-color: white;
+       border-color: #fff;
        width: auto;
 }
 
@@ -147,7 +147,7 @@ div.tleft {
 }
 
 img.thumbborder {
-       border: 1px solid #dddddd;
+       border: 1px solid #ddd;
 }
 
 /* Page history styling */
@@ -212,7 +212,7 @@ table.toc td {
 }
 
 .error {
-       color: red;
+       color: #f00;
        font-size: larger;
 }
 
@@ -224,12 +224,12 @@ table.toc td {
 }
 
 #preftoc li {
-       border: 1px solid White;
+       border: 1px solid #fff;
 }
 
 #preftoc li.selected {
        background-color: #f9f9f9;
-       border: 1px dashed #aaaaaa;
+       border: 1px dashed #aaa;
 }
 
 #preftoc a,
@@ -272,14 +272,14 @@ table.small {
 
 /* use this instead of #toc for page content */
 .toccolours {
-       border: 1px solid #aaaaaa;
+       border: 1px solid #aaa;
        background-color: #f9f9f9;
        padding: 5px;
        font-size: 95%;
 }
 
 #siteNotice {
-       border: 1px solid #aaaaaa;
+       border: 1px solid #aaa;
        padding-left: 0.5em;
        padding-right: 0.5em;
 }
@@ -290,12 +290,12 @@ table.small {
 
 span.unpatrolled {
        font-weight: bold;
-       color: red;
+       color: #f00;
 }
 
 span.updatedmarker {
-       color: black;
-       background-color: #00FF00;
+       color: #000;
+       background-color: #0f0;
 }
 
 div.gallerybox {
@@ -308,14 +308,14 @@ span.comment {
 
 .previewnote {
        text-align: center;
-       color: #cc0000;
+       color: #c00;
 }
 
 .editExternally {
        border-style: solid;
        border-width: 1px;
-       border-color: gray;
-       background: #ffffff;
+       border-color: #808080;
+       background: #fff;
        padding: 3px;
        margin-top: 0.5em;
        float: left;
@@ -325,7 +325,7 @@ span.comment {
 
 .editExternallyHelp {
        font-style: italic;
-       color: gray;
+       color: #808080;
 }
 
 li span.deleted {
@@ -358,7 +358,7 @@ table.mw_metadata {
 
 table.mw_metadata td,
 table.mw_metadata th {
-       border: 1px solid #aaaaaa;
+       border: 1px solid #aaa;
        padding-left: 4px;
        padding-right: 4px;
 }
@@ -403,7 +403,7 @@ table.mw_metadata td.spacer {
 }
 
 div.multipageimagenavbox {
-       border: solid 1px silver;
+       border: solid 1px #c0c0c0;
        padding: 4px;
        margin: 1em;
        background: #f0f0f0;
@@ -450,7 +450,7 @@ body {
 }
 
 body.ns-0 {
-       background-color: white;
+       background-color: #fff;
 }
 
 /** RTL specific CSS starts here **/
index ec6cee4..e18ef69 100644 (file)
@@ -44,8 +44,8 @@
 
 /* User-Agent styles for new HTML5 elements */
 mark {
-       background-color: yellow;
-       color: black;
+       background-color: #ff0;
+       color: #000;
 }
 
 /* Helper for wbr element on IE 8+; in HTML5, but not supported by default as of IE 11. */
@@ -156,7 +156,7 @@ span.history-deleted {
 
 .unpatrolled {
        font-weight: bold;
-       color: red;
+       color: #f00;
 }
 
 div.patrollink {
@@ -246,7 +246,7 @@ input#wpSummary {
 .catlinks li {
        display: inline-block;
        line-height: 1.25em;
-       border-left: 1px solid #AAA;
+       border-left: 1px solid #aaa;
        margin: 0.125em 0;
        padding: 0 0.5em;
        zoom: 1;
@@ -288,7 +288,7 @@ p.mw-delete-editreasons {
 
 /* The auto-generated edit comments */
 .autocomment {
-       color: gray;
+       color: #808080;
 }
 
 #pagehistory .history-user {
@@ -297,7 +297,7 @@ p.mw-delete-editreasons {
 }
 
 #pagehistory li {
-       border: 1px solid white;
+       border: 1px solid #fff;
 }
 
 #pagehistory li.selected {
@@ -325,7 +325,7 @@ p.mw-delete-editreasons {
 div.mw-warning-with-logexcerpt {
        padding: 3px;
        margin-bottom: 3px;
-       border: 2px solid #2F6FAB;
+       border: 2px solid #2f6fab;
        clear: both;
 }
 
@@ -352,7 +352,7 @@ th.mw-revdel-checkbox {
 
 /* red links; see bug 36276 */
 a.new {
-       color: #BA0000;
+       color: #ba0000;
 }
 
 /* Plainlinks - this can be used to switch
@@ -378,7 +378,7 @@ table.wikitable {
        background-color: #f9f9f9;
        border: 1px solid #aaa;
        border-collapse: collapse;
-       color: black;
+       color: #000;
 }
 
 table.wikitable > tr > th,
@@ -407,7 +407,7 @@ table.wikitable > caption {
 }
 
 .error {
-       color: #cc0000;
+       color: #c00;
 }
 
 .warning {
@@ -441,7 +441,7 @@ table.wikitable > caption {
 }
 
 .errorbox {
-       color: #cc0000;
+       color: #c00;
        border-color: #fac5c5;
        background-color: #fae3e3;
 }
@@ -504,20 +504,20 @@ table.wikitable > caption {
 .mw-datatable,
 .mw-datatable td,
 .mw-datatable th {
-       border: 1px solid #aaaaaa;
+       border: 1px solid #aaa;
        padding: 0 0.15em 0 0.15em;
 }
 
 .mw-datatable th {
-       background-color: #ddddff;
+       background-color: #ddf;
 }
 
 .mw-datatable td {
-       background-color: #ffffff;
+       background-color: #fff;
 }
 
 .mw-datatable tr:hover td {
-       background-color: #eeeeff;
+       background-color: #eef;
 }
 
 /* Classes for Exif data display */
@@ -548,7 +548,7 @@ table.mw_metadata {
 
 table.mw_metadata td,
 table.mw_metadata th {
-       border: 1px solid #aaaaaa;
+       border: 1px solid #aaa;
        padding-left: 5px;
        padding-right: 5px;
 }
index 89f8745..38f33be 100644 (file)
@@ -198,7 +198,7 @@ div.magnify a {
 }
 
 img.thumbborder {
-       border: 1px solid #dddddd;
+       border: 1px solid #ddd;
 }
 
 /* Directionality-specific styles for thumbnails - their positioning depends on content language */
index 99d465b..74911b7 100644 (file)
@@ -126,7 +126,7 @@ figure[typeof~='mw:Image/Frame'] {
 figure[typeof~='mw:Image/Thumb'] > *:first-child > img,
 figure[typeof~='mw:Image/Frame'] > *:first-child > img,
 .mw-image-border > *:first-child > img {
-       border: 1px solid #cccccc;
+       border: 1px solid #ccc;
        margin: 3px;
 }
 
index 7872085..7b0b071 100644 (file)
@@ -34,7 +34,7 @@ a:lang(ur) {
 }
 
 a.stub {
-       color: #772233;
+       color: #723;
 }
 
 a.new, #p-personal a.new {
@@ -97,7 +97,7 @@ h3,
 h4,
 h5,
 h6 {
-       color: black;
+       color: #000;
        background: none;
        font-weight: normal;
        margin: 0;
@@ -195,11 +195,11 @@ pre, code, tt, kbd, samp, .mw-code {
         * Some browsers will render the monospace text too small, namely Firefox, Chrome and Safari.
         * Specifying any valid, second value will trigger correct behavior without forcing a different font.
         */
-       font-family: monospace, Courier;
+       font-family: monospace, 'Courier';
 }
 
 code {
-       color: black;
+       color: #000;
        background-color: #f9f9f9;
        border: 1px solid #ddd;
        border-radius: 2px;
@@ -208,7 +208,7 @@ code {
 
 pre,
 .mw-code {
-       color: black;
+       color: #000;
        background-color: #f9f9f9;
        border: 1px solid #ddd;
        padding: 1em;
index b57ee36..8b07721 100644 (file)
@@ -16,8 +16,8 @@
 }
 
 .editOptions {
-       background-color: #F0F0F0;
-       border: 1px solid silver;
+       background-color: #f0f0f0;
+       border: 1px solid #c0c0c0;
        border-top: none;
        padding: 1em 1em 1.5em 1em;
        margin-bottom: 2em;
@@ -26,7 +26,7 @@
 .usermessage {
        background-color: #ffce7b;
        border: 1px solid #ffa500;
-       color: black;
+       color: #000;
        font-weight: bold;
        margin: 2em 0 1em;
        padding: .5em 1em;
index 15f4e4d..f2019e7 100644 (file)
@@ -103,7 +103,7 @@ span.mw-protectedpages-actions {
        font-size: 90%;
 }
 span.mw-protectedpages-unknown {
-       color: grey;
+       color: #808080;
        font-size: 90%;
 }
 
index e05d163..4c9c41e 100644 (file)
@@ -3,7 +3,7 @@
 .mw-email-none .mw-input{
        border: 1px solid #fde29b;
        background-color: #fdf1d1;
-       color: #000000;
+       color: #000;
 }
 /* Authenticated email field has its own class too. Unstyled by default */
 /*
old mode 100755 (executable)
new mode 100644 (file)
index 1ce9569..1e99361
@@ -44,13 +44,13 @@ div.searchresult {
        font-size: 108%;
 }
 .mw-search-result-data {
-       color: green;
+       color: #0f0;
        font-size: 97%;
 }
 .mw-search-profile-tabs {
        background-color: #f3f3f3;
        margin-top: 1em;
-       border: 1px solid silver;
+       border: 1px solid #c0c0c0;
 }
 .mw-search-profile-tabs div.search-types {
        float: left;
@@ -71,7 +71,7 @@ div.searchresult {
        padding: 0.5em;
 }
 .mw-search-profile-tabs div.search-types ul li.current a {
-       color: #333333;
+       color: #333;
        cursor: default;
 }
 .mw-search-profile-tabs div.search-types ul li.current a:hover {
@@ -90,7 +90,7 @@ fieldset#mw-searchoptions {
        padding: 0.5em 0.75em 0.75em 0.75em;
        border: none;
        background-color: #f9f9f9;
-       border: 1px solid silver;
+       border: 1px solid #c0c0c0;
        border-top-width: 0;
 }
 fieldset#mw-searchoptions legend {
@@ -121,18 +121,18 @@ fieldset#mw-searchoptions table td {
 }
 fieldset#mw-searchoptions div.divider {
        clear: both;
-       border-bottom: 1px solid #DDDDDD;
+       border-bottom: 1px solid #ddd;
        padding-top: 0.5em;
        margin-bottom: 0.5em;
 }
 td#mw-search-menu {
-       padding-left:6em;
-       font-size:85%;
+       padding-left: 6em;
+       font-size: 85%;
 }
 div#mw-search-interwiki {
        float: right;
        width: 18em;
-       border: 1px solid #AAAAAA;
+       border: 1px solid #aaa;
        margin-top: 2ex;
 }
 div#mw-search-interwiki li {
@@ -152,7 +152,7 @@ div#mw-search-interwiki-caption {
        text-align: left;
        padding: 0.15em 0.15em 0.2em 0.2em;
        background-color: #ececec;
-       border-top: 1px solid #BBBBBB;
+       border-top: 1px solid #bbb;
 }
 span.searchalttitle {
        font-size: 95%;
index 0998d4c..87cdb02 100644 (file)
@@ -45,7 +45,7 @@ div.mw-createacct-benefits-container h2 {
        margin: 0;
        padding: 0;
        color: #252525;
-       font-family: "Linux Libertine", Georgia, Times, serif;
+       font-family: 'Linux Libertine', 'Georgia', 'Times', serif;
        font-weight: normal;
        font-size: 2.2em;
        line-height: 1.2;
index a7beb0d..74c75ea 100644 (file)
                }
        }
 
-       background-color: white;
+       background-color: #fff;
        border: 1px solid #ccc;
 
        &.mw-widgets-datetime-calendarWidget-dependent {
                margin-top: -1px;
-               border-top: 1px solid white;
+               border-top: 1px solid #fff;
        }
 
        &-heading {
index bc387df..84788d2 100644 (file)
@@ -51,7 +51,7 @@
                padding: 0 1em;
                margin: 0;
                background-color: #fff;
-               color: black;
+               color: #000;
                border: solid 1px #ccc;
                box-shadow: inset 0 0 0 0 @progressive;
                border-radius: 0.1em;
 
                &.oo-ui-flaggedElement-invalid {
                        .mw-widgets-datetime-dateTimeInputWidget-handle {
-                               border-color: red;
-                               box-shadow: inset 0 0 0 0 red;
+                               border-color: #f00;
+                               box-shadow: inset 0 0 0 0 #f00;
                        }
 
                        .mw-widgets-datetime-dateTimeInputWidget-handle:focus {
-                               border-color: red;
-                               box-shadow: inset 0 0 0 0.1em red;
+                               border-color: #f00;
+                               box-shadow: inset 0 0 0 0.1em #f00;
                        }
                }
        }
        }
 
        &-editField.mw-widgets-datetime-dateTimeInputWidget-invalid {
-               border: 1px solid red;
-               box-shadow: inset 0 0 0 0 red;
+               border: 1px solid #f00;
+               box-shadow: inset 0 0 0 0 #f00;
 
                &:focus {
-                       border: 1px solid red;
-                       box-shadow: inset 0 0 0 0.1em red;
+                       border: 1px solid #f00;
+                       box-shadow: inset 0 0 0 0.1em #f00;
                }
        }
 
index 873cca1..ee571cb 100644 (file)
@@ -74,7 +74,7 @@
                border: 1px solid #ccc;
                border-radius: 0.1em;
                line-height: 1.275em;
-               background-color: white;
+               background-color: #fff;
        }
 
        &.oo-ui-indicatorElement .mw-widget-dateInputWidget-handle > .oo-ui-indicatorElement-indicator {
@@ -91,7 +91,7 @@
        }
 
        &-calendar {
-               background-color: white;
+               background-color: #fff;
                margin-top: -2px;
 
                &:focus {
 
        &.oo-ui-flaggedElement-invalid {
                .mw-widget-dateInputWidget-handle {
-                       border-color: red;
-                       box-shadow: inset 0 0 0 0 red;
+                       border-color: #f00;
+                       box-shadow: inset 0 0 0 0 #f00;
                }
        }
 
index cf9496f..ecfc880 100644 (file)
@@ -20,8 +20,8 @@
 
 .mw-widgets-stashedFileWidget-info {
        height: 2.4em;
-       background-color: #ffffff;
-       border: 1px solid #cccccc;
+       background-color: #fff;
+       border: 1px solid #ccc;
        border-radius: 2px;
        width: 100%;
        display: table-cell;
@@ -51,7 +51,7 @@
                        float: left;
                }
                > .mw-widgets-stashedFileWidget-fileType {
-                       color: #888888;
+                       color: #888;
                        float: right;
                }
        }
@@ -79,9 +79,9 @@
 
        &.oo-ui-widget-disabled {
                .mw-widgets-stashedFileWidget-info {
-                       color: #cccccc;
-                       text-shadow: 0 1px 1px #ffffff;
-                       border-color: #dddddd;
+                       color: #ccc;
+                       text-shadow: 0 1px 1px #fff;
+                       border-color: #ddd;
                        background-color: #f3f3f3;
 
                        > .oo-ui-iconElement-icon,
@@ -97,8 +97,8 @@
        height: 5.5em;
        text-align: left;
        padding: 0;
-       background-color: #ffffff;
-       border: 1px solid #cccccc;
+       background-color: #fff;
+       border: 1px solid #ccc;
        margin-bottom: 0.5em;
        vertical-align: middle;
        overflow: hidden;
 
                > .mw-widgets-stashedFileWidget-noThumbnail-icon {
                        opacity: 0.4;
-                       background-color: #cccccc;
+                       background-color: #ccc;
                        height: 5.5em;
                        width: 5.5em;
                }
        }
 
        .mw-widgets-stashedFileWidget-label {
-               color: #cccccc;
+               color: #ccc;
                right: 0.5em;
        }
 
index a35ce7a..365e988 100644 (file)
@@ -28,7 +28,7 @@ div.apihelp-linktrail {
 .apihelp-flags {
        font-size: smaller;
        float: right;
-       border: 1px solid black;
+       border: 1px solid #000;
        padding: 0.25em;
        width: 20em;
 }
@@ -36,7 +36,7 @@ div.apihelp-linktrail {
 .apihelp-deprecated, .apihelp-flag-deprecated,
 .apihelp-flag-internal strong {
        font-weight: bold;
-       color: red;
+       color: #f00;
 }
 
 .apihelp-unknown {
index 9e20264..91fa02a 100644 (file)
@@ -13,7 +13,7 @@
 
 .mw-json th,
 .mw-json td {
-       border: 1px solid gray;
+       border: 1px solid #808080;
        font-size: 16px;
        padding: 0.5em 1em;
 }
@@ -50,7 +50,7 @@
 }
 
 .mw-json table caption {
-       color: gray;
+       color: #808080;
        display: inline-block;
        font-size: 10px;
        font-style: italic;
index 949c558..54620f4 100644 (file)
@@ -65,7 +65,7 @@
        font-size: 13px;
        /* IE-hack for display: inline-block */
        zoom: 1;
-       *display:inline;
+       *display: inline;
 }
 
 .mw-debug-panelink {
@@ -115,7 +115,7 @@ a.mw-debug-panelabel:visited {
        th,
        td,
        table {
-               border: 1px solid #D0DBB3;
+               border: 1px solid #d0dbb3;
                border-collapse: collapse;
                margin: 0;
        }
@@ -127,12 +127,12 @@ a.mw-debug-panelabel:visited {
        }
 
        th {
-               background-color: #F1F7E2;
+               background-color: #f1f7e2;
                font-weight: bold;
        }
 
        td {
-               background-color: white;
+               background-color: #fff;
        }
 }
 
index f4af4ba..89efae3 100644 (file)
@@ -9,7 +9,7 @@
        }
 
        .mediawiki-filewarning-footer {
-               color: #888888;
+               color: #888;
        }
 
        .empty {
index c3341bb..9405f6b 100644 (file)
@@ -5,7 +5,7 @@ table.mw-htmlform-nolabel td.mw-label {
 }
 
 .mw-htmlform-invalid-input td.mw-input input {
-       border-color: red;
+       border-color: #f00;
 }
 
 .mw-htmlform-flatlist div.mw-htmlform-flatlist-item {
index 4aad2ba..1203b6a 100644 (file)
                                 */
                                jobs = [],
 
-                               // Selector cache for the marker element. Use getMarker() to get/use the marker!
-                               $marker = null,
+                               // For getMarker()
+                               marker = null,
 
-                               // For #addEmbeddedCSS
+                               // For addEmbeddedCSS()
                                cssBuffer = '',
                                cssBufferTimer = null,
-                               cssCallbacks = $.Callbacks();
+                               cssCallbacks = $.Callbacks(),
+                               isIEto9 = 'documentMode' in document && document.documentMode <= 9,
+                               isIE9 = document.documentMode === 9;
 
                        function getMarker() {
-                               if ( !$marker ) {
+                               if ( !marker ) {
                                        // Cache
-                                       $marker = $( 'meta[name="ResourceLoaderDynamicStyles"]' );
-                                       if ( !$marker.length ) {
-                                               mw.log( 'No <meta name="ResourceLoaderDynamicStyles"> found, inserting dynamically' );
-                                               $marker = $( '<meta>' ).attr( 'name', 'ResourceLoaderDynamicStyles' ).appendTo( 'head' );
+                                       marker = document.querySelector( 'meta[name="ResourceLoaderDynamicStyles"]' );
+                                       if ( !marker ) {
+                                               mw.log( 'Create <meta name="ResourceLoaderDynamicStyles"> dynamically' );
+                                               marker = $( '<meta>' ).attr( 'name', 'ResourceLoaderDynamicStyles' ).appendTo( 'head' )[ 0 ];
                                        }
                                }
-                               return $marker;
+                               return marker;
                        }
 
                        /**
                         *
                         * @private
                         * @param {string} text CSS text
-                        * @param {HTMLElement|jQuery} [nextnode=document.head] The element where the style tag
+                        * @param {Node} [nextNode] The element where the style tag
                         *  should be inserted before
                         * @return {HTMLElement} Reference to the created style element
                         */
-                       function newStyleTag( text, nextnode ) {
+                       function newStyleTag( text, nextNode ) {
                                var s = document.createElement( 'style' );
                                // Support: IE
-                               // Must attach to document before setting cssText (bug 33305)
-                               if ( nextnode ) {
-                                       $( nextnode ).before( s );
+                               // Must attach style element to the document before setting cssText (T35305)
+                               if ( nextNode && nextNode.parentNode ) {
+                                       nextNode.parentNode.insertBefore( s, nextNode );
                                } else {
                                        document.getElementsByTagName( 'head' )[ 0 ].appendChild( s );
                                }
                                        cssBuffer = '';
                                }
 
-                               // By default, always create a new <style>. Appending text to a <style>
-                               // tag is bad as it means the contents have to be re-parsed (bug 45810).
+                               // By default, always create a new <style>. Appending text to a <style> tag is
+                               // is a performance anti-pattern as it requires CSS to be reparsed (T47810).
                                //
-                               // Except, of course, in IE 9 and below. In there we default to re-using and
-                               // appending to a <style> tag due to the IE stylesheet limit (bug 31676).
-                               if ( 'documentMode' in document && document.documentMode <= 9 ) {
-
-                                       $style = getMarker().prev();
-                                       // Verify that the element before the marker actually is a
-                                       // <style> tag and one that came from ResourceLoader
-                                       // (not some other style tag or even a `<meta>` or `<script>`).
+                               // Support: IE 6-9
+                               // Try to re-use existing <style> tags due to the IE stylesheet limit (T33676).
+                               if ( isIEto9 ) {
+                                       $style = $( getMarker() ).prev();
+                                       // Verify that the element before the marker actually is a <style> tag created
+                                       // by mw.loader (not some other style tag, or e.g. a <meta> tag).
                                        if ( $style.data( 'ResourceLoaderDynamicStyleTag' ) ) {
-                                               // There's already a dynamic <style> tag present and
-                                               // we are able to append more to it.
-                                               styleEl = $style.get( 0 );
-                                               // Support: IE6-10
+                                               styleEl = $style[ 0 ];
+                                               // Support: IE 6-10
                                                if ( styleEl.styleSheet ) {
                                                        try {
-                                                               // Support: IE9
-                                                               // We can't do styleSheet.cssText += cssText, since IE9 mangles this property on
-                                                               // write, dropping @media queries from the CSS text. If we read it and used its
-                                                               // value, we would accidentally apply @media-specific styles to all media. (T108727)
-                                                               if ( document.documentMode === 9 ) {
+                                                               // Support: IE 9
+                                                               // We can't do styleSheet.cssText += cssText in IE9 because it mangles cssText on
+                                                               // write (removes @media queries). If we read it and used its value, we'd
+                                                               // accidentally apply @media-specific styles to all media. (T108727)
+                                                               if ( isIE9 ) {
                                                                        newCssText = $style.data( 'ResourceLoaderDynamicStyleTag' ) + cssText;
                                                                        styleEl.styleSheet.cssText = newCssText;
                                                                        $style.data( 'ResourceLoaderDynamicStyleTag', newCssText );
                                                fireCallbacks();
                                                return;
                                        }
+                                       // Else: No existing tag to reuse. Continue below and create the first one.
                                }
 
                                $style = $( newStyleTag( cssText, getMarker() ) );
 
-                               if ( document.documentMode === 9 ) {
-                                       // Support: IE9
-                                       // Preserve original CSS text because IE9 mangles it on write
-                                       $style.data( 'ResourceLoaderDynamicStyleTag', cssText );
-                               } else {
-                                       $style.data( 'ResourceLoaderDynamicStyleTag', true );
+                               if ( isIEto9 ) {
+                                       if ( isIE9 ) {
+                                               $style.data( 'ResourceLoaderDynamicStyleTag', cssText );
+                                       } else {
+                                               $style.data( 'ResourceLoaderDynamicStyleTag', true );
+                                       }
                                }
 
                                fireCallbacks();
                                var el = document.createElement( 'link' );
                                // Support: IE
                                // Insert in document *before* setting href
-                               getMarker().before( el );
+                               $( getMarker() ).before( el );
                                el.rel = 'stylesheet';
                                if ( media && media !== 'all' ) {
                                        el.media = media;
index 188af6a..5111d96 100644 (file)
 }
 
 .mw-notification-type-warn {
-       border-color: #F5BE00; /* yellow */
-       background-color: #FFFFE8;
+       border-color: #f5be00; /* yellow */
+       background-color: #ffffe8;
 }
 
 .mw-notification-type-error {
-       border-color: #EB3941; /* red */
-       background-color: #FFF8F8;
+       border-color: #eb3941; /* red */
+       background-color: #fff8f8;
 }
index df144ce..ce3cfbd 100644 (file)
@@ -4,7 +4,7 @@
 .suggestions a.mw-searchSuggest-link:hover,
 .suggestions a.mw-searchSuggest-link:active,
 .suggestions a.mw-searchSuggest-link:focus {
-       color: black;
+       color: #000;
        text-decoration: none;
 }
 
@@ -12,7 +12,7 @@
 .suggestions-result-current a.mw-searchSuggest-link:hover,
 .suggestions-result-current a.mw-searchSuggest-link:active,
 .suggestions-result-current a.mw-searchSuggest-link:focus {
-       color: white;
+       color: #fff;
 }
 
 .suggestions a.mw-searchSuggest-link .special-query {
index 3c80bbb..4d43e6a 100644 (file)
@@ -84,7 +84,7 @@ ul.mw-gallery-packed-hover li.gallerybox:hover div.gallerytextwrapper,
 ul.mw-gallery-packed-overlay li.gallerybox div.gallerytextwrapper,
 ul.mw-gallery-packed-hover li.gallerybox.mw-gallery-focused div.gallerytextwrapper {
        position: absolute;
-       background: white;
+       background: #fff;
        background: rgba(255, 255, 255, 0.8);
        padding: 5px 10px;
        bottom: 0;
index a63202f..ec68b3c 100644 (file)
@@ -14,7 +14,7 @@
        $( function () {
                var $patrolLinks = $( '.patrollink a' );
                $patrolLinks.on( 'click', function ( e ) {
-                       var $spinner, href, rcid, apiRequest;
+                       var $spinner, rcid, apiRequest;
 
                        // Start preloading the notification module (normally loaded by mw.notify())
                        mw.loader.load( 'mediawiki.notification' );
@@ -26,8 +26,7 @@
                        } );
                        $( this ).hide().after( $spinner );
 
-                       href = $( this ).attr( 'href' );
-                       rcid = mw.util.getParamValue( 'rcid', href );
+                       rcid = mw.util.getParamValue( 'rcid', this.href );
                        apiRequest = new mw.Api();
 
                        apiRequest.postWithToken( 'patrol', {
index ade6914..0a5d3cd 100644 (file)
@@ -1,4 +1,4 @@
-@chrome @firefox @vagrant
+@chrome @firefox @skip @vagrant
 Feature: Edit Page
 
   Scenario: Create and edit page
index 95136d2..8e72bcf 100644 (file)
@@ -1,4 +1,4 @@
-@chrome @firefox @vagrant
+@chrome @firefox @skip @vagrant
 Feature: View History
 
   Scenario: Edit page and view history
index a01f2f5..4721793 100644 (file)
@@ -46,7 +46,7 @@ class HtmlTest extends MediaWikiTestCase {
                $this->assertEquals(
                        '<img/>',
                        Html::element( 'img', null, '' ),
-                       'No close tag for short-tag elements'
+                       'Self-closing tag for short-tag elements'
                );
 
                $this->assertEquals(
@@ -60,12 +60,6 @@ class HtmlTest extends MediaWikiTestCase {
                        Html::element( 'element', [], '' ),
                        'Close tag for empty element (array, string)'
                );
-
-               $this->assertEquals(
-                       '<img/>',
-                       Html::element( 'img', null, '' ),
-                       'Self-closing tag for short-tag elements'
-               );
        }
 
        public function dataXmlMimeType() {
@@ -140,12 +134,6 @@ class HtmlTest extends MediaWikiTestCase {
                        Html::expandAttributes( [ 'selected' ] ),
                        'Boolean attributes have no value when value is true (passed as numerical array)'
                );
-
-               $this->assertEquals(
-                       ' selected=""',
-                       Html::expandAttributes( [ 'selected' => true ] ),
-                       'Boolean attributes have empty string value when value is true'
-               );
        }
 
        /**
index a45c3ae..0e646ea 100644 (file)
@@ -2,6 +2,8 @@
 use Liuggio\StatsdClient\Factory\StatsdDataFactory;
 use MediaWiki\Interwiki\InterwikiLookup;
 use MediaWiki\MediaWikiServices;
+use MediaWiki\Services\DestructibleService;
+use MediaWiki\Services\SalvageableService;
 use MediaWiki\Services\ServiceDisabledException;
 
 /**
@@ -9,7 +11,7 @@ use MediaWiki\Services\ServiceDisabledException;
  *
  * @group MediaWiki
  */
-class MediaWikiServicesTest extends PHPUnit_Framework_TestCase {
+class MediaWikiServicesTest extends MediaWikiTestCase {
 
        /**
         * @return Config
@@ -66,9 +68,69 @@ class MediaWikiServicesTest extends PHPUnit_Framework_TestCase {
                $newServices = $this->newMediaWikiServices();
                $oldServices = MediaWikiServices::forceGlobalInstance( $newServices );
 
+               $service1 = $this->getMock( SalvageableService::class );
+               $service1->expects( $this->never() )
+                       ->method( 'salvage' );
+
+               $newServices->defineService(
+                       'Test',
+                       function() use ( $service1 ) {
+                               return $service1;
+                       }
+               );
+
+               // force instantiation
+               $newServices->getService( 'Test' );
+
                MediaWikiServices::resetGlobalInstance( $this->newTestConfig() );
                $theServices = MediaWikiServices::getInstance();
 
+               $this->assertSame(
+                       $service1,
+                       $theServices->getService( 'Test' ),
+                       'service definition should survive reset'
+               );
+
+               $this->assertNotSame( $theServices, $newServices );
+               $this->assertNotSame( $theServices, $oldServices );
+
+               MediaWikiServices::forceGlobalInstance( $oldServices );
+       }
+
+       public function testResetGlobalInstance_quick() {
+               $newServices = $this->newMediaWikiServices();
+               $oldServices = MediaWikiServices::forceGlobalInstance( $newServices );
+
+               $service1 = $this->getMock( SalvageableService::class );
+               $service1->expects( $this->never() )
+                       ->method( 'salvage' );
+
+               $service2 = $this->getMock( SalvageableService::class );
+               $service2->expects( $this->once() )
+                       ->method( 'salvage' )
+                       ->with( $service1 );
+
+               // sequence of values the instantiator will return
+               $instantiatorReturnValues = [
+                       $service1,
+                       $service2,
+               ];
+
+               $newServices->defineService(
+                       'Test',
+                       function() use ( &$instantiatorReturnValues ) {
+                               return array_shift( $instantiatorReturnValues );
+                       }
+               );
+
+               // force instantiation
+               $newServices->getService( 'Test' );
+
+               MediaWikiServices::resetGlobalInstance( $this->newTestConfig(), 'quick' );
+               $theServices = MediaWikiServices::getInstance();
+
+               $this->assertSame( $service2, $theServices->getService( 'Test' ) );
+
                $this->assertNotSame( $theServices, $newServices );
                $this->assertNotSame( $theServices, $oldServices );
 
@@ -110,35 +172,42 @@ class MediaWikiServicesTest extends PHPUnit_Framework_TestCase {
                }
 
                MediaWikiServices::forceGlobalInstance( $oldServices );
+               $newServices->destroy();
        }
 
        public function testResetChildProcessServices() {
                $newServices = $this->newMediaWikiServices();
                $oldServices = MediaWikiServices::forceGlobalInstance( $newServices );
 
-               $lbFactory = $this->getMockBuilder( 'LBFactorySimple' )
-                       ->disableOriginalConstructor()
-                       ->getMock();
+               $service1 = $this->getMock( DestructibleService::class );
+               $service1->expects( $this->once() )
+                       ->method( 'destroy' );
 
-               $lbFactory->expects( $this->once() )
+               $service2 = $this->getMock( DestructibleService::class );
+               $service2->expects( $this->never() )
                        ->method( 'destroy' );
 
-               $newServices->redefineService(
-                       'DBLoadBalancerFactory',
-                       function() use ( $lbFactory ) {
-                               return $lbFactory;
+               // sequence of values the instantiator will return
+               $instantiatorReturnValues = [
+                       $service1,
+                       $service2,
+               ];
+
+               $newServices->defineService(
+                       'Test',
+                       function() use ( &$instantiatorReturnValues ) {
+                               return array_shift( $instantiatorReturnValues );
                        }
                );
 
                // force the service to become active, so we can check that it does get destroyed
-               $oldLBFactory = $newServices->getService( 'DBLoadBalancerFactory' );
+               $oldTestService = $newServices->getService( 'Test' );
 
                MediaWikiServices::resetChildProcessServices();
                $finalServices = MediaWikiServices::getInstance();
 
-               $newLBFactory = $finalServices->getService( 'DBLoadBalancerFactory' );
-
-               $this->assertNotSame( $oldLBFactory, $newLBFactory );
+               $newTestService = $finalServices->getService( 'Test' );
+               $this->assertNotSame( $oldTestService, $newTestService );
 
                MediaWikiServices::forceGlobalInstance( $oldServices );
        }
index 933777c..f22e123 100644 (file)
@@ -166,6 +166,55 @@ class ServiceContainerTest extends PHPUnit_Framework_TestCase {
                $this->assertSame( 'Bar!', $services->getService( 'Bar' ) );
        }
 
+       public function testImportWiring() {
+               $services = $this->newServiceContainer();
+
+               $wiring = [
+                       'Foo' => function() {
+                               return 'Foo!';
+                       },
+                       'Bar' => function() {
+                               return 'Bar!';
+                       },
+                       'Car' => function() {
+                               return 'FUBAR!';
+                       },
+               ];
+
+               $services->applyWiring( $wiring );
+
+               $newServices = $this->newServiceContainer();
+
+               // define a service before importing, so we can later check that
+               // existing service instances survive importWiring()
+               $newServices->defineService( 'Car', function() {
+                       return 'Car!';
+               } );
+
+               // force instantiation
+               $newServices->getService( 'Car' );
+
+               // Define another service, so we can later check that extra wiring
+               // is not lost.
+               $newServices->defineService( 'Xar', function() {
+                       return 'Xar!';
+               } );
+
+               // import wiring, but skip `Bar`
+               $newServices->importWiring( $services, [ 'Bar' ] );
+
+               $this->assertNotContains( 'Bar', $newServices->getServiceNames(), 'Skip `Bar` service' );
+               $this->assertSame( 'Foo!', $newServices->getService( 'Foo' ) );
+
+               // import all wiring, but preserve existing service instance
+               $newServices->importWiring( $services );
+
+               $this->assertContains( 'Bar', $newServices->getServiceNames(), 'Import all services' );
+               $this->assertSame( 'Bar!', $newServices->getService( 'Bar' ) );
+               $this->assertSame( 'Car!', $newServices->getService( 'Car' ), 'Use existing service instance' );
+               $this->assertSame( 'Xar!', $newServices->getService( 'Xar' ), 'Predefined services are kept' );
+       }
+
        public function testLoadWiringFiles() {
                $services = $this->newServiceContainer();
 
@@ -220,6 +269,27 @@ class ServiceContainerTest extends PHPUnit_Framework_TestCase {
                $this->assertSame( $theService1, $services->getService( $name ) );
        }
 
+       public function testRedefineService_disabled() {
+               $services = $this->newServiceContainer( [ 'Foo' ] );
+
+               $theService1 = new stdClass();
+               $name = 'TestService92834576';
+
+               $services->defineService( $name, function() {
+                       return 'Foo';
+               } );
+
+               // disable the service. we should be able to redefine it anyway.
+               $services->disableService( $name );
+
+               $services->redefineService( $name, function() use ( $theService1 ) {
+                       return $theService1;
+               } );
+
+               // force instantiation, check result
+               $this->assertSame( $theService1, $services->getService( $name ) );
+       }
+
        public function testRedefineService_fail_undefined() {
                $services = $this->newServiceContainer();
 
@@ -294,13 +364,6 @@ class ServiceContainerTest extends PHPUnit_Framework_TestCase {
                $this->assertContains( 'Bar', $services->getServiceNames() );
                $this->assertContains( 'Qux', $services->getServiceNames() );
 
-               // re-enable Bar service
-               $services->redefineService( 'Bar', function() {
-                       return new stdClass();
-               } );
-
-               $services->getService( 'Bar' );
-
                $this->setExpectedException( 'MediaWiki\Services\ServiceDisabledException' );
                $services->getService( 'Qux' );
        }
index 2c1d1e6..f42cb95 100644 (file)
@@ -44,6 +44,42 @@ class ConfigFactoryTest extends MediaWikiTestCase {
                $this->assertNotSame( $config1, $config2 );
        }
 
+       /**
+        * @covers ConfigFactory::register
+        */
+       public function testSalvage() {
+               $oldFactory = new ConfigFactory();
+               $oldFactory->register( 'foo', 'GlobalVarConfig::newInstance' );
+               $oldFactory->register( 'bar', 'GlobalVarConfig::newInstance' );
+               $oldFactory->register( 'quux', 'GlobalVarConfig::newInstance' );
+
+               // instantiate two of the three defined configurations
+               $foo = $oldFactory->makeConfig( 'foo' );
+               $bar = $oldFactory->makeConfig( 'bar' );
+               $quux = $oldFactory->makeConfig( 'quux' );
+
+               // define new config instance
+               $newFactory = new ConfigFactory();
+               $newFactory->register( 'foo', 'GlobalVarConfig::newInstance' );
+               $newFactory->register( 'bar', function() {
+                       return new HashConfig();
+               } );
+
+               // "foo" and "quux" are defined in the old and the new factory.
+               // The old factory has instances for "foo" and "bar", but not "quux".
+               $newFactory->salvage( $oldFactory );
+
+               $newFoo = $newFactory->makeConfig( 'foo' );
+               $this->assertSame( $foo, $newFoo, 'existing instance should be salvaged' );
+
+               $newBar = $newFactory->makeConfig( 'bar' );
+               $this->assertNotSame( $bar, $newBar, 'don\'t salvage if callbacks differ' );
+
+               // the new factory doesn't have quux defined, so the quux instance should not be salvaged
+               $this->setExpectedException( 'ConfigException' );
+               $newFactory->makeConfig( 'quux' );
+       }
+
        /**
         * @covers ConfigFactory::register
         */
index 63f5de0..ed18205 100644 (file)
@@ -16,7 +16,7 @@
        beStrictAboutTestsThatDoNotTestAnything="true"
        beStrictAboutOutputDuringTests="true"
        beStrictAboutTestSize="true"
-       verbose="true">
+       verbose="false">
        <testsuites>
                <testsuite name="includes">
                        <directory>includes</directory>